我有一個有多個網站的伺服器,每個網站都有自己的主機。
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;
}