反向代理 - 根据IP

时间:2017-05-23 12:26:40

标签: load-balancing reverse-proxy

假设我有一个负载均衡器(Nginx或其他,无关紧要),我希望它能够路由到基于IP的机器。配置时不知道IP。因此,例如,我在机器m1和m2前面有一个负载平衡器。请求来自IP10并且它被路由到m1,来自IP10的所有后续请求也被路由到m1。另一个请求来自IP11,它被路由到m2,来自IP11的所有后续请求也被路由到m2。

这是可能的,如果是这样的话?

1 个答案:

答案 0 :(得分:1)

从您的描述中我了解到,只要所有后续请求都遵循相同的路由,您就没有特定要求来自特定IP的第一个请求将被路由到何处。

如果是这种情况,您要执行的操作是称为会话粘性持久会话的负载平衡方法。

在nginx中,您可以通过以下配置实现:

http {
    upstream mybackend {
        ip_hash;
        server m1.ltd;
        server m2.ltd;
     }

     server {
         listen 80;

         location / {
             proxy_pass http://mybackend;
         }
     }
}

以下是指定nginx docs的链接。