我有一台服务器,其中有多个网站,每个网站都有自己的主机。
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_module具有可放入服务器块的允许和拒绝命令。
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;
}