阿里云
服务器地域选择
发表主题 回复主题
  • 148阅读
  • 2回复

[环境配置]nginx 屏蔽IP不生效

级别: 新人
发帖
2
云币
9
nginx配置指定IP----- deny IP,这样屏蔽不生效,deny all; 就生效了。 allow IP也不生效。什么原因啊,哪位大拿帮着解决下。
关键词: 配置 nginx deny allow
级别: 论坛版主
发帖
2295
云币
6636
只看该作者 沙发  发表于: 09-13
nginx的ngx_http_access_module 模块可以封配置内的ip或者ip段,语法如下: Td5;bg6Qy  
jnuovM!x~  
deny IP; :8bz+3p  
deny subnet; 4=>4fia&D  
allow IP; nx >PZb  
allow subnet; 8*^Q#;^~99  
# block all ips 5h^U ]Y#  
deny    all; xhIC["z5  
# allow all ips {g *kr1JM  
allow    all; Ii,Lj1Q  
如果规则之间有冲突,会以最前面匹配的规则为准。 yU~OfwQ  
}Z ws e%;  
如何配置禁用ip或ip段呢? v(\kSlJ  
]3C&l+m$ot  
下面说明假定nginx的目录在/usr/local/nginx/ MeqW/!72$L  
>*v^E9Y  
首先要建一个封ip的配置文件blockips.conf,然后vi blockips.conf编辑此文件,在文件中输入要封的ip。 b<B|p|  
HPGi5rU  
deny 1.2.3.4; [}|-% 4s  
deny 91.212.45.0/24; A|V |vT7cb  
deny 91.212.65.0/24; ~B%=g)w  
然后保存此文件,并且打开nginx.conf文件,在http配置节内添加下面一行配置: *ws!8-)fH  
dIG(7 ~  
include blockips.conf; :cmfy6h]  
保存nginx.conf文件,然后测试现在的nginx配置文件是否是合法的: nl|}_~4U  
~\c]!%)o  
/usr/local/nginx/sbin/nginx -t _'k?9eN`  
如果配置没有问题,就会输出: 'Lft\.C  
>8~+[e  
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok h1Ca9Z_  
configuration file /usr/local/nginx/conf/nginx.conf test is successful sT9P  
如果配置有问题就需要检查下哪儿有语法问题,如果没有问题,需要执行下面命令,让nginx重新载入配置文件。 !6ZkLE[XJ<  
z)'dDM D"  
/usr/local/nginx/sbin/nginx -s reload R ;^[4<&  
如何禁止所有外网ip,仅允许内网ip呢? 2jf-vWV_  
+d6/*}ht  
如下配置文件 Ep0L51Q  
P.P3/,  
location / { }> k9]Y  
  # block one workstation .  \ *Z:  
  deny    192.168.1.1; y@J]busU  
  # allow anyone in 192.168.1.0/24 A+3@N99HeH  
  allow   192.168.1.0/24; +I#5?  
  # drop rest of the world KUVsCmiT  
  deny    all; EN()dCQHr  
} p%CAicn  
上面配置中禁止了192.168.1.1,允许其他内网网段,然后deny all禁止其他所有ip。  &(\z  
-<a~kVv  
如何格式化nginx的403页面呢? 0O?B!Jr]RM  
M ]W'>g)G  
首先执行下面的命令: Gd`qZqx#  
'MPt K  
cd /usr/local/nginx/html '5KgRK"  
vi error403.html "?V4Tl~uu  
然后输入403的文件内容,例如: "-kb=fY  
3x9O<H}  
<html> QfB \h[A  
<head><title>Error 403 - IP Address Blocked</title></head> <DiD8")4  
<body> ;Aiuy{<  
Your IP Address is blocked. If you this an error, please contact webmaster with your IP at webmaster@example.com [kgT"?w=  
</body> ;14[)t$  
</html> ~;,]/'O  
如果启用了SSI,可以在403中显示被封的客户端ip,如下: Z:09 ]r1  
5[esW  
Your IP Address is <!--#echo var="REMOTE_ADDR" --> blocked. R~CQ=KQ.  
保存error403文件,然后打开nginx的配置文件vi nginx.conf,在server配置节内添加下面内容  |X`xJL  
afv? z  
# redirect server error pages to the static page -]R7[5C:  
error_page   403  /error403.html; eHi|_3A&*  
location = /error403.html { Z&@X4X"q  
         root   html; Y.3]vno?X  
} rAwq$!xx  
然后保存配置文件,通过nginx -t命令测试配置文件是否正确,若正确通过nginx -s reload载入配置。
版主光山居士,站长界的老司机,以帮助和服务新手站长朋友为宗旨!
级别: 新人
发帖
2
云币
9
只看该作者 板凳  发表于: 09-13
Renginx 屏蔽IP不生效
谢谢,
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个