Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2224583
  • 博文数量: 533
  • 博客积分: 8689
  • 博客等级: 中将
  • 技术积分: 7046
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-26 10:00
文章分类

全部博文(533)

文章存档

2024年(2)

2023年(4)

2022年(16)

2014年(90)

2013年(76)

2012年(125)

2011年(184)

2010年(37)

分类: LINUX

2010-11-26 16:09:43

前几天技术主管说,老板朋友的网站要拒绝20000多个IP组(可能有几十万个IP)的访问权限

想一下如果用IPTABLES的话,写个脚本是可以实现。但是这么多的记录加入到iptables配置文件,肯定不太发管理。所以,想起以前公司用过的方法。如下:

的ngx_http_access_module 模块可以用来设置允许/禁止哪些ip或ip段访问,可以设置一个内容类似下面的:

 IP;
deny subnet;
 IP;
allow subnet;
# block all ips
deny    all;
# allow all ips
allow    all;

其中网段的写法是这样的:192.168.1.0/24这样的形式。

然后编辑nginx.conf,加入一行:
include blockips.conf;

这样设置以后,该服务器上所有的网站都会按照这个设置来拒绝或允许访问。如果想只针对某个网站,可以在具体的网站的配置中加入:
location / {
  allow   192.168.0.0/24;
  deny    all;
}
这样就只允许192.168.0.0网段的ip访问,其他ip访问会返回一个403错误。

还可以自定义一个403错误的页面,可以在/usr/local/nginx/html下新建个error403.html文件,里面按照html的语法写个文档,写上一些说明文字。
然后编辑nginx.conf,加入:
error_page   403  /error403.html;
location = /error403.html {
         root   html;
}
重启nginx即可。

阅读(2268) | 评论(0) | 转发(0) |
0

上一篇:nginx模块中文翻译

下一篇:LNMP 安装脚本。

给主人留下些什么吧!~~