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重复访问到。