加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

与Nginx代理的粘性会话

发布时间:2020-12-13 21:41:28 所属栏目:Nginx 来源:网络整理
导读:我有一个应用程序在两个不同的AWS实例上运行,我想基于IP启用“粘性”或“持久”会话,以便我可以以特定方式利用Web套接字技术. 我有两个不同的设置,都涉及使用ip_hash来启用这些粘性会话. 在第一个设置中,应用程序进程在与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;
}

在第二个设置中,我指向外部实例并尝试实现相同的效果.此设置无效.换句话说,会话仍然是负载平衡的.

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;
}

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

最佳答案
根据Nginx文档,Sticky会话支持仅适用于其昂贵的Plus版本.
我一直在研究替代方案,而我越接近这个老叉子与Nginx 1.5 https://github.com/lusis/nginx-sticky-module不兼容

我还试图构建一个LUA模块,但没有用于对等选择的API挂钩,仅用于枚举和阻塞.

Nginx Plus Load Balancing

更新

我找到了另一个很棒的模块,见https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/src

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读