1. 前置说明:我的 Nginx 版本是 0.7.63, 安装在 /usr/local/nginx 下,默认端口是 80 ,并重写了 Nginx 启动、关闭、重启和重载配置文件的脚本,放在 /usr/local/nginx/sbin/ 下,名为 nginxbak.sh 。
Resin 使用的是 3.1.10 ,安装在 /usr/local/resin-3.1.10 ,端口设置为 8081 。
Tomcat 使用的是 6.0.29 ,安装在 /usr/local/apache-tomcat-6.0.29 下,端口设置为 8080 。
2. 新建一个最简单的 web 工程,名叫 NginxTest
index.jsp 里的内容就是打印一句话,为区分请求访问的是哪个后端服务器,语句里有区别是使用哪个服务器的识别词。
3. 将 NginxTest 工程上传到虚拟服务器上,并部署到相应的后端服务器上去,它们的配置分别如下:
Tomcat:
Resin:
修改 hosts 文件:
192.168.1.86 nginx.digu.com
分别启动 tomcat(startup.sh) 和 resin(httpd.sh start) ,在浏览器中查看是否可访问:
4. 将 tomcat 、 resin 作为 nginx 的后端服务器,配置一个最简单的服务器集群以演示它负载均衡情况。
Nginx 的配置文件内容如下:
配置好后, reload 一下 nginx 的配置文件,即 ./nginxbak.sh reload
启动 nginx 即 ./nginxbak start
打开浏览器访问:
再访问一下:
可以看到分别访问了 resin 和 tomcat 。
可以屏蔽 #server 127.0.0.1:8081;#resin 它,后重载 nginx.conf ,这时只能访问 tocmat
同样也可以屏蔽 #server 127.0.0.1:8080;#tomcat ,后重载 nginx.conf ,这时只能访问 resin
现在仍然保持它们都不屏蔽,停止 tomcat 试下效果:
此时通过 tomcat 无法访问,通过 nginx 去访问:
此时你无论请求多少次,都只有 resin 服务器进行响应。
以上是最简单的 nginx 负载均衡实验测试,还有更多的配置在以后再做测试。