Nginx反向代理使用proxy,负载均衡使用upstream
配置反向代理proxy:proxy_pass url地址
配置负载均衡upstream: upstream xxx { server1 ....; server2 ......;}
官方配置文档:http://nginx.org/en/docs
1、配置反向代理,拦截.jsp结尾的请求转向到tomcat服务器,假如我在113机子启动一个tomcat服务。

①用正则匹配 \.jsp$
这里可以联系到动静分离,请求动态的都转到tomcat。例如jsp,controller的访问,一般以.do,.action结尾,可以这么写:\(.jsp|.action|.do)$
②反向代理用到 proxy_pass
③在192.168.1.113启动一个tomcat服务,并在ROOT下弄一个test.jsp作为测试页面。

访问试试:

注意:我们可以看到,因为是通过nginx代理的,所以request获取的remoteAddr为nginx服务器的ip地址,那么我们怎么才能获取真正访问此uri的ip地址呢。我们通过proxy_set_header来往header里添加请求参数。格式:proxy_set_header 参数名 参数值
下面修改配置,修改后记得重启nginx服务:

在访问看看:

2、负载均衡:设定负载均衡的服务器列表,分配权重。
①我们弄两个tomcat服务器,一个是192.168.1.112:8080,一个是192.168.1.113:8080
②权重都是1就ok啦。测试一下
③权重越大被分配到的几率越大
④使用upstream
④113的test.jsp显示Test1 Page,112的test.jsp显示Test2 Page

测试:可以发现,Test1 Page和Test2 Page重复访问到。

本文介绍如何使用Nginx进行反向代理,特别针对动态资源如JSP的请求转发,以及如何配置负载均衡分发请求至多个Tomcat服务器。通过实例演示了正则匹配、proxy_pass和upstream的使用。
798

被折叠的 条评论
为什么被折叠?



