nginx+tomcat 另类负载均衡
一、部署背景 某服务器A:10.68.4.198 域名:edi.qnb.com ( to mcat应用,web 访问但须帐密认证,其他服务器连接查询却无须认证 ) 因业务需要,需要对A服务器做负载均衡。要求用nginx的upstream模块。A服务器上安装了tomcat和nginx,nginx做转发,将端口80接收到的请求,转发至本机的8080端口上,由tomcat处理。 现有相同配置的服务器B:10.68.4.248,用于做A的负载均衡。 按照一般设置是直接在upstream块中添加如下两句,但是这样。web访问的就会出问题, session丢失 。会一直是登陆界面。然而nginx完美解决了这个问题。那就是用ip_hash。 ip_hash:能够将某个客户端的ip的请求通过哈希算法定位到同一台后端服务器。 upstream edi.qnb.com { ip_hash; server 127.0.0.1:8080; server 10.68.4.248:8080; } 通过ip_hash确实能够解决session丢失的问题。但是相同ip却永远只会调转到一台服务器上,web访问可以负载均衡,那么服务器访问呢?而服务器A大多是其他服务器连接访问。 所以ip_hash只能解决web访问,而不能解决服务器间的访问。 我的思路:和同事讨论后,决定在nginx上配置两个域名。一个用于web访问