server {
listen 80;
server_name abc.com.cn;
access_log /dev/null;
error_log /data/logs/error.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
if ($remote_addr ~ "192.168.1.100")
{
proxy_pass http://abc_test_server;
break;
}
proxy_pass http://abc_server;
}
}
1
zpfhbyx 2019-07-23 11:16:16 +08:00
nginx ip 分流 google 下
|
2
taolu 2019-07-23 11:19:30 +08:00
`geo`指令吧
|
3
arrow8899 2019-07-23 11:25:33 +08:00 1
if ($remote_addr ~ "192.168.1.*") 直接就是支持正则的
|
4
aaa5838769 OP @zpfhbyx 我这个需求是两个不同的网段,一个 192.168.4.x,另一个是 172.17.10.x
|
5
aaa5838769 OP @taolu 我搜一下。
|
6
aaa5838769 OP @arrow8899 非常感谢
|
7
zpfhbyx 2019-07-23 11:31:14 +08:00
@aaa5838769 那用 2l @taolu 说的 geo 吧
|
8
whsir 2019-07-23 13:40:44 +08:00
我觉得你可以参考下这个 https://blog.whsir.com/post-4430.html
|
9
realpg 2019-07-23 14:39:30 +08:00
正则表达式不是爱怎么写就怎么写
|
10
ToughGuy 2019-07-23 16:59:25 +08:00
map $remote_addr $upstream {
192.168.1.100 "abc_test_server"; } proxy_pass http://$upstream; |
11
ToughGuy 2019-07-23 17:00:39 +08:00
|
12
Aresxue 2019-07-23 17:18:07 +08:00
不是默认支持正则?
|
13
jamesliu96 2019-07-23 17:42:32 +08:00 via Android
用核心 map 模块或者 rewrite 模块都能实现,主要看你具体需求了,但其实很少有需要在 ng 代理上做这个的
|
14
aaa5838769 OP @jamesliu96 那么一般都是在路由层还是 DNS 那去做?
|
15
jamesliu96 2019-07-24 11:02:10 +08:00 via Android
@aaa5838769 都可以,最优方案看具体需求
|