【问题标题】:Load balancing dynamic php site using nginx使用 nginx 对动态 php 站点进行负载均衡
【发布时间】:2016-06-27 08:45:50
【问题描述】:

我有三台服务器。一个用于负载平衡,另外两个用于服务 Web 应用程序。如果我将我的网页用作静态站点,我的负载平衡工作正常。但是当我登录到我的网页时,它没有正确响应,因为每次加载页面时它都会更改其服务器。在注销前不更改当前服务器的情况下,我怎么能做到这一点。我的负载均衡服务器配置是

upstream web_backend{
    server 192.168.33.2;
    server 192.168.33.3;
}

server{
    listen 80;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://web_backend;
    }
}

【问题讨论】:

标签: php nginx load-balancing sticky-session


【解决方案1】:

你可以使用 nginx 的Session persistence 功能:

如果需要将客户端绑定到特定应用程序 服务器——换句话说,使客户端的会话“粘性”或 就总是试图选择一个特定的服务器而言,“持久”—— 可以使用ip-hash负载均衡机制。

使用 ip-hash,客户端的 IP 地址被用作哈希键 确定应为服务器组中的哪个服务器选择 客户的要求。此方法可确保来自同一 客户端将始终被定向到同一服务器,除非此 服务器不可用。

要配置 ip-hash 负载均衡,只需将 ip_hash 指令添加到 服务器(上游)组配置:

在您的情况下,只需将 ip_hash 添加到您的上游定义中

upstream web_backend{
    ip_hash;
    server 192.168.33.2;
    server 192.168.33.3;
}

【讨论】:

    猜你喜欢
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 2017-01-20
    • 2020-05-26
    • 1970-01-01
    • 2021-03-17
    相关资源
    最近更新 更多