北在北方

太白枝头看,花开不计年,杯中浮日月,楼外是青天。

导航

Nginx作为负载均衡服务器(Windows环境)

Posted on 2014-10-28 11:07  CN.programmer.Luxh  阅读(462)  评论(0编辑  收藏  举报

  一个最简单的负载均衡测试,不涉及到session复制,只是将请求分配到不同的服务器上去而已。

1、创建一个简单的web应用。只有一个index.jsp页面,,内容如下。

<%@ page language="java"  pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
  <head>
    <title>Index</title>
  </head>
  <body>
            Hello,Nginx!
            <%
                System.out.println("*****************Nginx做负载均衡将请求分配到本服务器*****************");
             %>
  </body>
</html>

  打印一句话就ok,能在不同服务器打印出来,说明请求被分配到不同的服务器了。

2、配置nginx.conf

  1)在http节点中添加如下内容

    upstream localhost {
        server localhost:18080;//tomcat服务器-1号
        server localhost:28080;//tomcat服务器-2号
    }

  2)在http节点中的server节点内容添加如下内容

location / {
        proxy_pass http://localhost;
}

3、将web应用分别部署到两台tomcat服务器,启动两台tomcat,启动nginx。然后访问http://localhost/index.jsp,看看两台tomcat服务器打印的内容

 

4、以上是默认使用轮询的方式实现负载均衡,还有另外两种方式

  Least connected(将请求分配到最空闲的服务器上)

upstream localhost {
        least_conn;
        server localhost:18080;
        server localhost:28080;
}        

  ip_hash (基于客户端ip将请求分配到一些固定的服务器上)

upstream localhost {
        ip_hash;
        server localhost:18080;
        server localhost:28080;
}

 

5、在轮询的方式中,还可以指定服务器接受请求的权重

  

upstream localhost {
        server localhost:18080 weight=2;
        server localhost:28080 weight=1;
    }