Nginx+tomcat负载均衡配置

Posted 。低调ヽ继续

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx+tomcat负载均衡配置相关的知识,希望对你有一定的参考价值。

实施环境:

windows7 64 位操作系统(两台电脑,一个虚拟机)

nginx-1.8.1 下载地址  https://pan.baidu.com/s/1o8vagae  当然也可以去官网下载。

电脑A的IP:192.168.60.104 端口 80  -----该电脑部署Nginx

电脑B(虚拟机)的IP:192.168.230.131 端口 18080  ----------该电脑部署tomcat及项目

电脑C的IP:192.168.1.126  端口 28080   ----------该电脑部署tomcat及项目

步骤:

    1.下载nginx,下载完毕后解压将文件放入E盘

  

    2.进入nginx目录下,在确保:80端口未被占用的情况下,在地址栏输入cmd,进入控制台后,输入start nginx 回车。

     然后如果在地址栏中输入http://localhost 回车,出现nginx的欢迎界面,说明配置成功

    3.在A电脑上设置Nginx的相关配置,找到nginx存放位置,在conf文件夹下找到nginx.conf进行编辑,内容如下:

 1  
 2 worker_processes  1; 
 3 events {
 4     worker_connections  1024;
 5 }
 6 
 7 
 8 http {
 9     include       mime.types;
10     default_type  application/octet-stream; 
11 
12     sendfile        on; 
13     keepalive_timeout  65; 
14     upstream backend {
15         server   192.168.230.131:18080;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。  
16         server   192.168.1.126:28080;  
17         #ip_hash;
18     }    
19 
20     server {
21         listen       80;
22         server_name  localhost; 
23 
24         location / {
25            root   html;
26            index  index.html index.htm;
27            proxy_pass                  http://backend;  
28            proxy_redirect              default;
29            proxy_set_header            Host $host;
30            proxy_set_header            X-Real-IP $remote_addr;
31            proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
32            client_max_body_size        10m;
33            client_body_buffer_size     128k;
34            proxy_connect_timeout       3;
35            proxy_send_timeout          90;
36            proxy_read_timeout          90;
37            proxy_buffer_size           4k;
38            proxy_buffers               4 32k;
39            proxy_busy_buffers_size     64k;
40            proxy_temp_file_write_size  64k; 
41         } 
42         error_page   500 502 503 504  /50x.html;
43         location = /50x.html {
44             root   html;
45         } 
46     } 
47 
48 }

4.配置B电脑 和C电脑上的tomcat

打开server.xml文件,文件目录在tomcat文件夹下的 conf -->server.xml,这里需要修改三个地方,这里我把B电脑端口改为前边全部加上了1,C电脑端口前边全部加上了2,该处至列举对B电脑的配置修改代码

<1>

<Server port="8005" shutdown="SHUTDOWN">
改为 <Server port="18005" shutdown="SHUTDOWN">

<2>

  <Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20"    redirectPort="8443"  URIEncoding="UTF-8"  />
改为
  <Connector port="18080" protocol="HTTP/1.1"  connectionTimeout="20"    redirectPort="8443"  URIEncoding="UTF-8"  />

<3>

 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
改为
 <Connector port="18009" protocol="AJP/1.3" redirectPort="8443" />

5.配置完毕后,重新启动tomcat,然后确保本地项目已被启动且可以访问。

6.回到A电脑,重新启动nginx 命令 nginx -s reload

打开浏览器,输入http://localhost/ 如果顺利进入项目,那么说明配置成功。

额外补充一下nginx的,通过这端代码可以监控Nginx的状态。

# localhost:8082/NginxStatus/ 可以访问
    location ~ ^/NginxStatus/ { 
        stub_status on; #Nginx 状态监控配置
            access_log off; 
    } 

Nginx的常用命令

 1 停止
 2 nginx -s stop
 3 
 4 退出
 5 nginx -s quit
 6 
 7 重新加载 ,当你改变了nginx配置信息并需要重新载入这些配置时可以使用此命令重载nginx
 8 nginx -s reload
 9 
10 重新打开日志文件命令
11 nginx -s reopen
12 
13 nginx -v
14 nginx命令参数v与V的区别
15 nginx -v命令只是简单显示nginx的版本信息(nginx version)
16 nginx -V不但显示nginx的版本信息,而且还显示nginx的配置参数信息。

假设B电脑挂掉,刚好这个时候有用户正在使用系统,且Nginx分配的是B电脑的访问地址,那么这时候nginx会自动切换到C电脑上,而用户又没有在C电脑部署的系统上登录,那么这个时候就涉及到session共享机制,我只设置了如下几处地方,如需深入了解请转移https://www.cnblogs.com/SZLLQ2000/p/5814520.html

我的设置:

1.在tomcat 的server.xml中将<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 开启,之前是被注视掉的。

2.在我们的项目下找到web.xml,我部署在了B电脑和C电脑,那么找到这两个web.xml,找到最后的</web-app>并在它之前分别添加<distributable/>。

以上是关于Nginx+tomcat负载均衡配置的主要内容,如果未能解决你的问题,请参考以下文章

[tomcat] tomcat+nginx 负载均衡配置

Nginx配置Nginx的负载均衡

Nginx和tomcat实现负载均衡

Nginx + Tomcat 实现 负载均衡 和 动静分离群集

Nginx和tomcat实现负载均衡

Nginx 配置实例-配置负载均衡