NginX只有一个后端与ip_hash启用…?

我们试图评估的设置非常简单 – 一台机器上的NginX(当前1vCPU,2GB RAM),两台独立机器上的两台后端Tomcat。 核心configuration如下:

worker_processes 1; events { worker_connections 2048; use epoll; # multi_accept on; } http { # define load-balancing upstream upstream tomcatUpstream { ip_hash; server 192.168.xx.51:8080; server 192.168.xx.52:8080; } include /etc/nginx/mime.types; default_type application/octet-stream; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 0; # 45; # keepalive_requests 4096; reset_timedout_connection on; client_body_timeout 30; send_timeout 15; } 

我们尝试从3个不同的机器(3个不同的公共IP – 2个不同的城市,3个不同的ISP,尽pipe在同一个国家内)运行ab -c10 -n20

无论我在configuration(epoll是/否,multi_accept开启/closures,保持活动0 /!= 0,重新启动,删除var / cache / nginx …)中改变或尝试了什么,只有一个后端Tomcat被击中,总是第一个在上游列表顺序,因为我试图改变顺序以及。

对于更多的上下文 – 这两个雄猫提供dynamic生成的二进制文件(二进制每个请求,大小为60 – 200KB),响应时间不是很快。

ip_hash被禁用时,请求将分布在两个后端。 那么,我们的testing或者NginXconfiguration中肯定会出现错误…?