Win10 搭建 nginx tomcat 集群

本文阐述在一台Win10 PC 上面搭建tomcat集群(安装两台Tomcat应用)以及如何应用nginx实现负载均衡。

1. 搭建Tomcat集群

按照前一篇博文的步骤在Win 10 PC上面安装两台Tomcat应用。

 

2. 搭建nginx

到nginx官网下载windows版本的nginx。(http://nginx.org/en/download.html)

 

安装很简单,直接解压到某一固定目录下。我直接解压到D:\D\nginx-1.12.2下面。

3. 配置nginx

nginx的配置文件为“nginx.conf”,在安装目录下(D:\D\nginx-1.12.2\conf)。需要修改的地方有两处,如下所示:

第一处为配置upstream,此处就是添加tomcat集群的信息。


#keepalive_timeout 0;
keepalive_timeout 10;

#gzip on;

#设定负载均衡的服务器列表 支持多组的负载均衡,可以配置多个upstream 来服务于不同的Server.

#nginx 的 upstream 支持 几 种方式的分配

#1)、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

#2)、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 跟上面样,指定了权重。

#3)、ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

#4)、fair

#5)、url_hash #Urlhash

upstream local_tomcat_cluster {

#weigth参数表示权值,权值越高被分配到的几率越大

#1.down 表示单前的server暂时不参与负载

#2.weight 默认为1.weight越大,负载的权重就越大。

#3.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

#server 192.168.1.116 down;

#server 192.168.1.116 backup;

server localhost:8091;

server localhost:8092;

#server localhost:8091 weight=1; 

#server localhost:8092 weight=5; 

}

第二处修改nginx监听端口(修改为9999),以及转发信息(proxy_pass http://local_tomcat_cluster; 此处用的是upstream的名字,并不带有端口号),如下:

   #配置代理服务器的地址,即Nginx安装的服务器地址、监听端口、默认地址  

    server {
        listen       9999;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
           proxy_pass http://local_tomcat_cluster;
		   root html;
		   index index.html index.htm;
        }

 当nignx接收到来自9999端口的请求时,会转发给tomcat集群,有tomcat做对应的web处理。

4. 启动nginx

用CMD进入到nginx的安装路径下,直接执行“start nginx”指令。另外还有几条比较有用的指令:

“nginx -s reload”:此指令使nginx.conf文件修改直接生效,应该是重启一次nginx。

“nginx -s stop”: 停止nginx。

“nginx -t”: 测试nginx.conf文件是否合法。

当启动nginx但是还没有启动tomcat时会出现如下页面:

 

5. 启动tomcat

在tomcat1和tomcat2中添加web应用。添加如下文件D:\D\apache-tomcat-8.5.30-tomcat1\webapps\tomcat1\index.jsp,D:\D\apache-tomcat-8.5.30-tomcat2\webapps\tomcat2\ndex.jsp。

index.jsp 内容如下:

<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
  <body>
    <% out.println("hello, This is Tomcat1"); %>
  </body>
</html>

  

<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
  <body>
    <% out.println("hello, This is Tomcat2"); %>
  </body>
</html> 

并修改tomcat1和tomcat2相对应的server.xml.

      <Host name="localhost"  appBase="webapps/tomcat1"
            unpackWARs="true" autoDeploy="true">
            <Context path="" docBase="" reloadable="true" />

 

      <Host name="localhost"  appBase="webapps/tomcat2"
            unpackWARs="true" autoDeploy="true">
            <Context path="" docBase="" reloadable="true" />

 最后启动tomcat1和tomcat2.

6. 验证

7. 总结

此处nginx位于tomcat集群的前端,充当了反向代理服务器的功能。

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

 

posted @ 2018-04-18 10:45  爱喝茶的安迪  阅读(310)  评论(0编辑  收藏  举报