nginx中封禁ip和允许内网ip访问
Posted autofelix
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx中封禁ip和允许内网ip访问相关的知识,希望对你有一定的参考价值。
〝 古人学问遗无力,少壮功夫老始成 〞
nginx不仅仅只是一款反向代理和负载均衡服务器,它还能提供很多强大的功能,例如:限流、缓存、黑白名单和灰度发布等等,我们先来了解一下nginx如何封禁ip和允许内网ip访问。如果大家觉得文章有帮助,请给博主一波关注和评论。
目录
一、语法
- Nginx的ngx_http_access_module 模块可以封配置内的ip或者ip段
deny IP;
deny subnet;
allow IP;
allow subnet;
# block all ips
deny all;
# allow all ips
allow all;
二、封禁ip
- 假定nginx的目录在/usr/local/nginx/
- 首先要建一个封ip的配置文件blockips.conf,然后在文件中输入要封的ip
deny 192.168.4.3;
deny 31.42.145.0/24;
deny 51.12.35.0/24;
- 然后保存此文件
- 并且打开nginx.conf文件,在http配置节内添加下面一行配置:
http
# 其他配置
include blockips.conf;
- 测试现在的nginx配置文件是否是合法
/usr/local/nginx/sbin/nginx -t
- 如果配置没有问题,就会输出
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful
- 如果配置有问题就需要检查下哪儿有语法问题
- 如果没有问题,需要执行下面命令,让nginx重新载入配置文件
/usr/local/nginx/sbin/nginx -s reload
三、仅内网IP访问
- 配置如下
- 下面配置中禁止了192.168.1.1,允许其他内网网段,然后deny all禁止其他所有ip。
location /
# block one workstation
deny 192.168.1.1;
# allow anyone in 192.168.1.0/24
allow 192.168.1.0/24;
# drop rest of the world
deny all;
以上是关于nginx中封禁ip和允许内网ip访问的主要内容,如果未能解决你的问题,请参考以下文章
nginx 限制目录访问为403,允许其它访问ip访问怎么变成404
CentOS7 下使用 Firewall防火墙系统封禁允许IP和端口的访问 端口转发 IP转发方法
Nginx 通过 Lua + Redis 实现动态封禁 IP