Nginx+tomcat负载均衡
系统环境#
- win8 64为
- jdk1.8
- 关闭系统防火墙。(如果不关闭可能需要对端口进行特殊处理)
软件版本#
为什么?#
Tomca支持的并发数为300-500, nginx支持的并发数为 50000。
nginx 安装#
- 下载 nginx-1.10.1
- 双击
nginx.exe
启动nginx,如果启动失败可以查看logs下的日志文件分析错误原因。 - 通过访问
localhost:端口号
查看nginx是否启动成功。
tomcat 安装和配置#
- 下载 tomcat-8.5.4
- 解压,解压之后复制一份
apache-tomcat-8.5.4_8080
和apache-tomcat-8.5.4_8090
,此时已经有两个tomcat。 -
配置
tomcat
的端口,tomcat默认得到端口是8080,所以我们只需要修改一个即可。修改server.xml
修改内容如下://8005->8095, 8080->8090, 8443->8093,8009->8099 //1 <Server port="8005" shutdown="SHUTDOWN"> <Server port="8095" shutdown="SHUTDOWN"> //2 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8093" /> //3 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Connector port="8099" protocol="AJP/1.3" redirectPort="8093" />
-
启动tomcat。进入bin目录,按下 SHIFT+鼠标右键,选择在此处打开命令行,输入
startup.bat
即可。 - 访问验证是否启动成功:
http://localhost:8090/
和http://localhost:8090/
。
nginx 代理配置#
-
在
#gzip on;
下面添加(192.168.1.10
是本机ip) -
修改
location /
的内容如下:location / { root html; index index.html index.htm; proxy_pass http://192.168.1.10; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; }
注意: 第二步的 proxy_pass
需要和第一步的 192.168.1.10
对应。
启动项目#
- 先启动tomcat。
- 再启动nginx。
测试负载均衡是否有效#
-
修改tomcat的首页,文件位置
webapps\ROOT\index.jsp
找到:修改一下,例如
-
重新启动tomcat和nginx。
-
访问项目,观察分析访问的是哪一个tomcat,关闭访问的tomcat,刷新网页(加载时间可能会有点长),会发现访问另一个tomcat。
可能出现的问题:#
-
nginx默认使用80端口,端口可能被占用,此时结束占用80端口号的程序,也可以修改nginx的端口号。