我想通过 nginx 配置将用户引导至不同的 Web 服务。
该场景是针对主机名从到192.168.1.1
的内部用户192.168.1.255
,我想为他们提供一些 Web 服务,但对于其他外部访问者,我不希望实现这一点。
我知道我可以使用它IP_TABLES
来启用此功能,但我使用 IP_TABLE 规则主要用于防火墙目的,我不想将它与此配置混合。
有没有我可以使用的配置nginx.conf
?
答案1
您可以将 GEO 模块与地图指令一起使用:
http {
geo $special_service {
default 0;
192.168.1.0/24 1;
}
server {
if ($special_service) {
return 302 $scheme://$server_name/special-service/;
}
}
}
答案2
创建一个单独的location
块来覆盖您的敏感内容。
请记住,配置指令不会继承;您需要在新块中包含内容所需的现有位置中的所有内容。
location /path/to/sensitive/stuff {
# any other config that you need goes here..
# ...
allow 192.168.1.0/24;
deny all;
}