
我想使用 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;
}