如何限制 nginx 中每個 HTTP 主機的單一 IP 的存取?

如何限制 nginx 中每個 HTTP 主機的單一 IP 的存取?

我有一個有多個網站的伺服器,每個網站都有自己的主機。

nginx 有沒有辦法阻止訪問0.0.0.0/0並允許特定 IP,例如1.2.3.4/32特定網站(特定主機/網域)?

例如:

  • 如果 HTTP 請求帶有主機標頭,則www.something-public.com允許所有。
  • 如果 HTTP 請求帶有主機標頭,則www.something-private.com拒絕所有請求並允許特定 IP 位址。

我遇到的另一個問題是網站所有者不受信任,我想透過此規則限制他們,不允許他們透過網站目錄中的設定檔(例如.htaccess覆蓋父目錄設定的檔案)來更改它

答案1

該模組ngx_http_access_模組有允許和拒絕命令,您可以將其放入伺服器區塊中。

server {
  server_name www.something-public.com;
  allow all; // I think this is the default and the statement is not needed
}

server {
  server_name www.something-private.com;
  allow 192.168.1.1/32;
  deny  all;
}

相關內容