【Nginx】如何封禁IP和IP段?看完这篇我会了!!

栏目: IT技术 · 发布时间: 4年前

内容简介:作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:https://github.com/sunshinelyz/mykit-delayNginx不仅仅只是一款反向代理和负载均衡服务器,它还能提供很多强大的功能,例如:限流、缓存、黑白名单和灰度发布等等。在之前的文章中,我们已经介绍了Nginx提供的这些功能。今天,我们来介

作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:https://github.com/sunshinelyz/mykit-delay

写在前面

Nginx不仅仅只是一款反向代理和负载均衡服务器,它还能提供很多强大的功能,例如:限流、缓存、黑白名单和灰度发布等等。在之前的文章中,我们已经介绍了Nginx提供的这些功能。今天,我们来介绍Nginx另一个强大的功能:禁用IP和IP段。

【Nginx】如何封禁IP和IP段?看完这篇我会了!!

禁用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和ip段

下面说明假定nginx的目录在/usr/local/nginx/。

首先要建一个封ip的配置文件blockips.conf,然后vi blockips.conf编辑此文件,在文件中输入要封的ip。

deny 1.2.3.4; 
deny 91.212.45.0/24; 
deny 91.212.65.0/24; 

然后保存此文件,并且打开nginx.conf文件,在http配置节内添加下面一行配置:

include blockips.conf; 

保存nginx.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

如何禁止所有外网ip,仅允许内网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; 
} 

上面配置中禁止了192.168.1.1,允许其他内网网段,然后deny all禁止其他所有ip。

格式化nginx的403页面

如何格式化nginx的403页面呢?

首先执行下面的命令:

cd /usr/local/nginx/html 
vi error403.html 

然后输入403的文件内容,例如:

<html> 
<head><title>Error 403 - IP Address Blocked</title></head> 
<body> 
Your IP Address is blocked. If you this an error, please contact binghe with your IP at test@binghe.com 
</body> 
</html> 

如果启用了SSI,可以在403中显示被封的客户端ip,如下:

Your IP Address is <!--#echo var="REMOTE_ADDR" --> blocked. 

保存error403文件,然后打开nginx的配置文件vi nginx.conf,在server配置节内添加下面内容。

# redirect server error pages to the static page 
 error_page   403  /error403.html; 
 location = /error403.html { 
         root   html; 
 } 

然后保存配置文件,通过nginx -t命令测试配置文件是否正确,若正确通过nginx -s reload载入配置。

本文转载自微信公众号「冰河技术」,可以通过以下二维码关注。转载本文请联系冰河技术公众号。

【Nginx】如何封禁IP和IP段?看完这篇我会了!!


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web开发敏捷之道

Web开发敏捷之道

Sam Ruby、Dave Thomas、David Heineme Hansson / 慕尼黑Isar工作组、骆古道 / 机械工业出版社 / 2012-3-15 / 59.00元

本书第1版曾荣获Jolt大奖“最佳技术图书”奖。在前3版的内容架构基础上,第4版增加了关于Rails中新特性和最佳实践的内容。本书从逐步创建一个真正的应用程序开始,然后介绍Rails的内置功能。全书分为3部分,第一部分介绍Rails的安装、应用程序验证、Rails框架的体系结构,以及Ruby语言的知识;第二部分用迭代方式创建应用程序,然后依据敏捷开发模式搭建测试案例,最终用Capistrano完成......一起来看看 《Web开发敏捷之道》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具