NGINX加载GEOIP实现IP拦截功能
如果你采用yum install nginx安装的NGINX,默认是没有GEOIP的。如果重新编译,又怕出问题,不过新版的NGINX都支持动态加载模块了,不需要对于主程序重新进行编译,下面就是加载GEOIP的方法。
wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
rpm -Uvh nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install nginx-module-geoip
打开/etc/nginx/nginx.conf,在events {的前面,添加下面的内容:
load_module modules/ngx_http_geoip_module.so;
load_module modules/ngx_stream_geoip_module.so;
或者使用完整路径也可以
load_module /usr/lib64/nginx/modules/ngx_http_geoip_module.so;
load_module /usr/lib64/nginx/modules/ngx_stream_geoip_module.so;
第二步就是在http和stream中,添加GEOIP文件的路径,以便查询IP
stream {
geoip_country /etc/nginx/GeoIP.dat;
......
}
http {
geoip_country /etc/nginx/GeoIP.dat;
......
}
第三步就是在网站配置文件server部分,添加你想要的功能,比如下的,禁止日本的IP地址访问网站
server {
......
if ($geoip_country_code = "JP") {
return 403;
}
......
}
这样就完美实现了屏蔽国家IP了,当然,你也可以把GEOIPCITY的IP库加载进去,然后拦截指定城市的IP地址。
- 上一篇:解决roundcube的WebMail程序没有草稿箱,已删除邮件等文件夹 [2021-11-20]
- 下一篇:ip6tables的基本配置 [2021-10-24]