前题条件,系统中安装好nginx服务器和两个以上的tomcat服务器(tomcat1, tomcat2, ...)它们部署有相同的应用。
- 起动tomcat服务器,tomcat1和tomcat2,它们分别监听8080和9090端口。
- 配置nginx负载均衡服务器,打开nginx.conf文件。在http模块里增加
这里指明nginx跟哪些tomcat实例相连接。修改server模块的server_name属性,它必须和upstream名称一致。并且修改location / 的属性。upstream webapp { server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s; server 127.0.0.1:9090 weight=1 max_fails=2 fail_timeout=30s; }
这样nginx已经与tomcat整合了。但是访问页面时样式、图片、JS等静态资源访问不了。再增加相应的静态资源location配置server { listen 8013; server_name webapp; location / { root html; index index.jsp index.html index.htm; proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_set_header Host $host; proxy_set_header X-real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://webapp; expires -1; } }
到这里所有设置已经完成,nginx与tomcat完美整合到一起。location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { proxy_pass http://webapp; expires 30d; } location ~ .*\.(js|css)?$ { proxy_pass http://webapp; expires 12h; }