如何根據訪客的「主機」將訪客導向某些http服務?

如何根據訪客的「主機」將訪客導向某些http服務?

我想使用 nginx 設定將使用者導向到不同的 Web 服務。

該場景適用於主機名為 的內部用戶,我想192.168.1.1192.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;
}

相關內容