Nginx-基于ISP的不同代理通过

时间:2019-02-21 18:25:51

标签: nginx reverse-proxy

我有一个动态网站,其中显示有关用户搜索的内容。现在,我希望来自特定ISP的用户通过rproxy发送到其他服务器,以便可以将访问者划分到不同的服务器。 使用nginx的最佳方法是什么?我不想使用位置模块,因为它无法正常运行

例如:我希望nginx将isp从橙色路由到另一台服务器,而不是AT&T的isp。两者都应该得到一个外观不同的网站,因为网站位于不同的服务器上

1 个答案:

答案 0 :(得分:0)

这可以使用geo模块指令来完成。

定义客户端IP地址(或网络)到后端服务器IP地址的映射:

geo $backend {
    default 1.2.3.4;
    1.1.1.1/32 100.100.100.101
    2.2.2.2/32 200.200.200.202
}

位置:

  • 第一行将backend变量设置为后端服务器IP 1.2.3.4
  • 如果访问者来自网络1.1.1.1/32,
  • 第二行将backend变量设置为后端服务器IP 100.100.100.101
  • 类似于以前,您已经有了这个主意:)

然后您将proxy_pass使用该变量:

location /
    proxy_pass http://$backend;
    ...
}