当Nginx代理了很多网站时,我们想让一部分人能访问,一部分人访问不了;那么我们可以来到每个网站的Nginx代理配置文件,针对某个网站单独设置:禁止或允许IP或IP段访问网站。
例:配置文件
server {
listen 80;
server_name localhost;
location / {
allow all;
deny 111.111.111.111;
root /app/abc/html;
index index.html index.htm;
}
# 转发配置
include /apps/nginx/abc-proxy-pass.conf;
}
deny 111.0.0.0/8; // 禁止 111.0.0.1 ~ 111.255.255.254 网段的IP
deny 111.111.0.0/16; // 禁止 111.111.0.1 ~ 111.111.254 网段的IP
deny 111.111.111.0/24; // 禁止 111.111.111.1 ~ 111.111.111.254 网段的IP
deny all; // 禁止所有IP
如果想禁止某个准确的IP,deny 后直接加IP(deny xxx.xxx.xxx.xxx;) 即可。
注意:
- 上面的配置中 allow 必须在 deny 的前面配置,不然 allow 不会生效。
- 修改Nginx配置文件需要重启 Nginx 服务才能生效。
- allow 允许 / deny 禁止 他们两用法相同。
重启Nginx:
在 Nginx 安装目录的 /sbin 目录下输入:
检查配置文件是否正确(提示 ok successful 字样表示正确)
./nginx -t
重启 Nginx
./nginx -s reload