阿里云
云栖社区2017年度颁奖盛典
发表主题 回复主题
  • 465阅读
  • 2回复

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

级别: 新人
发帖
2
云币
9
nginx配置指定IP----- deny IP,这样屏蔽不生效,deny all; 就生效了。 allow IP也不生效。什么原因啊,哪位大拿帮着解决下。
关键词: 配置 nginx deny allow
级别: 论坛版主
发帖
2519
云币
6993
只看该作者 沙发  发表于: 09-13
nginx的ngx_http_access_module 模块可以封配置内的ip或者ip段,语法如下: CG#lpAs  
/;5U-<qf  
deny IP; @ FNaCmBX  
deny subnet; 5;v_?M!UCK  
allow IP; f%,Vplb  
allow subnet; :zA/~/Wo  
# block all ips q8Jhs7fv  
deny    all; mYUR(*[  
# allow all ips ]u5B]ZQnA  
allow    all; 7C;oMh5  
如果规则之间有冲突,会以最前面匹配的规则为准。 *r)/Vx`S  
I8x,8}o>V  
如何配置禁用ip或ip段呢? ,|}}Ml  
I3I1<}>]Z  
下面说明假定nginx的目录在/usr/local/nginx/ k2 _i;v  
;OMR5KAz  
首先要建一个封ip的配置文件blockips.conf,然后vi blockips.conf编辑此文件,在文件中输入要封的ip。 CE5A^,EsB  
H^3f!\MC;o  
deny 1.2.3.4; AONEUSxJ  
deny 91.212.45.0/24; 0-P,zkK_v  
deny 91.212.65.0/24; @> |3d  
然后保存此文件,并且打开nginx.conf文件,在http配置节内添加下面一行配置: 8l.bT|#O  
@D[tljc^  
include blockips.conf; 9}|x N8  
保存nginx.conf文件,然后测试现在的nginx配置文件是否是合法的: wo+ b":  
4j1$1C{  
/usr/local/nginx/sbin/nginx -t oNEjlV*  
如果配置没有问题,就会输出: Te6cw+6  
]5O]=^ u0  
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok sRI0;  
configuration file /usr/local/nginx/conf/nginx.conf test is successful U-*`I?~=4  
如果配置有问题就需要检查下哪儿有语法问题,如果没有问题,需要执行下面命令,让nginx重新载入配置文件。 ,+4*\yI3l  
<GWzdj?  
/usr/local/nginx/sbin/nginx -s reload Z35(f0b  
如何禁止所有外网ip,仅允许内网ip呢? eH_< <Xh!v  
diWi0@  
如下配置文件 'NNfzh  
GY t|[GC  
location / { ?CD[jX}!  
  # block one workstation MBqw{cy  
  deny    192.168.1.1; F{G.dXZZ<  
  # allow anyone in 192.168.1.0/24 Bwc_N.w?3  
  allow   192.168.1.0/24; `m`Y3I  
  # drop rest of the world :w<Ga8\tZ  
  deny    all; Ya &\b 6  
} _:\zbn0\  
上面配置中禁止了192.168.1.1,允许其他内网网段,然后deny all禁止其他所有ip。 n_{az{~  
t2(vtxrt  
如何格式化nginx的403页面呢? 'Rb tcFb   
.(7m[-iF!  
首先执行下面的命令: gtnu/ Q  
JRR,ooN*i  
cd /usr/local/nginx/html xpp>5d !  
vi error403.html 1+#E|YWJ  
然后输入403的文件内容,例如: {kghZur  
h])oo:u'/Q  
<html> >QdT 7gB  
<head><title>Error 403 - IP Address Blocked</title></head> s6QD^[  
<body> Nt|Fw$3*5{  
Your IP Address is blocked. If you this an error, please contact webmaster with your IP at webmaster@example.com >9NC2%61S  
</body> j[A:So  
</html> uD?Rs`  
如果启用了SSI,可以在403中显示被封的客户端ip,如下:  [a_o3  
:=*V i`  
Your IP Address is <!--#echo var="REMOTE_ADDR" --> blocked. z%1& t4$  
保存error403文件,然后打开nginx的配置文件vi nginx.conf,在server配置节内添加下面内容 q8!]x-5$6j  
w*]FJ-b<.j  
# redirect server error pages to the static page nkzH}F=<  
error_page   403  /error403.html; "yc|ng  
location = /error403.html { (((|vI3 <  
         root   html; \ B'AXv 6  
} ~e&O?X  
然后保存配置文件,通过nginx -t命令测试配置文件是否正确,若正确通过nginx -s reload载入配置。
级别: 新人
发帖
2
云币
9
只看该作者 板凳  发表于: 09-13
Renginx 屏蔽IP不生效
谢谢,
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个