使用负载均衡的IP哈希Nginx进行加密

时间:2018-05-29 20:34:46

标签: scala nginx load load-balancing gatling

我正在加载测试具有4个节点的Tomcat Web应用程序。这些节点通过Nginx配置ip_hash:

ip_hash;
server example:8888 weight=2 max_fails=3 fail_timeout=10s;
server example:8888 weight=4 max_fails=3 fail_timeout=10s;
server example:8888 weight=2 max_fails=3 fail_timeout=10s;
server example:8888 weight=2 max_fails=3 fail_timeout=10s;

无论如何,我使用Gatling进行负载和性能测试,但每次开始测试时,所有流量都被路由到一个节点。只有当我将负载平衡节点更改为round_conn的循环时,才会划分流量。但是这个应用程序需要一个持久节点来完成工作。

有没有办法让Gatling在运行期间将流量路由到所有4个节点?也许有安装配置?我现在正在使用这个setUp:

setUp(scenario1.inject(
  atOnceUsers(50),
  rampUsers(300) over (1800 seconds),
  ).protocols(httpConf)
)

谢谢!

1 个答案:

答案 0 :(得分:0)

ip_hash;

指定组应使用负载平衡方法,其中请求根据客户端IP地址在服务器之间分发。

您应该使用sticky

启用会话关联,这会导致来自同一客户端的请求传递到一组服务器中的同一服务器。

修改

是的,我没有看到它只适用于nginx :(

我发现这篇文章(也许有帮助......):

https://serverfault.com/questions/832790/sticky-sessions-with-nginx-proxy

参考:https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng

还有旧版本nginx的模块版本:

http://dgtool.treitos.com/2013/02/nginx-as-sticky-balancer-for-ha-using.html

参考:https://code.google.com/archive/p/nginx-sticky-module/