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负载均衡配置的主要内容,如果未能解决你的问题,请参考以下文章