小编Him*_*mel的帖子

使用 Nginx 代理的粘性会话

我有一个运行在两个不同 AWS 实例上的应用程序,我想启用基于 IP 的“粘性”或“持久”会话,以便我可以以特定方式利用 Web 套接字技术。

我有两种不同的设置,都涉及ip_hash用于启用这些粘性会话。

在第一个设置中,应用程序进程与 Nginx 配置在同一实例上运行。这是有效的,会话按预期持续存在。

upstream my_app {
    ip_hash;
    # local servers
    server 127.0.0.1:3001 weight=100 max_fails=5 fail_timeout=300;
    server 127.0.0.1:3002 weight=100 max_fails=5 fail_timeout=300;
    keepalive 8;
}
Run Code Online (Sandbox Code Playgroud)

在第二个设置中,我指向外部实例并试图达到相同的效果。此设置不起作用。换句话说,会话仍在进行负载平衡。

upstream my_app {
    ip_hash;
    # external servers
    server 111.11.11.11:3001 weight=100 max_fails=5 fail_timeout=300;
    server 222.22.22.22:3002 weight=100 max_fails=5 fail_timeout=300;
    keepalive 8;
}
Run Code Online (Sandbox Code Playgroud)

我使用ip_hash正确吗?如何为外部服务器启用“粘性”基于 ip 的会话?

nginx load-balancing sticky-sessions

12
推荐指数
2
解决办法
4万
查看次数

标签 统计

load-balancing ×1

nginx ×1

sticky-sessions ×1