我有一个案例需要在Nginx中进行不同的代理传递,具体取决于客户端IP地址所属的CIDR。
因此,举例来说,假设我有以下CIDR:
10.50.0.0/16
10.51.0.0/16
10.52.0.0/16
每个客户端地址都需要在Nginx中具有不同的proxy_pass。我该怎么做呢?我对Nginx很新,所以实现这样的事情仍然有点令人困惑。
答案 0 :(得分:5)
您可以使用Geo module。您的配置看起来会像这样:
geo $upstream {
default default_upstream;
10.50.0.0/16 some_upstream;
10.51.0.0/16 another_upstream;
}
upstream default_upstream {
server 192.168.0.1:80;
}
upstream some_upstream {
server 192.168.0.2:80;
}
upstream another_upstream {
server 192.168.0.3:80;
}
server {
...
location ... {
...
proxy_pass http://$upstream;
}
...
}