NGINX 安装GEOIP模块

***********************************************************************
1:
nginx -V
***********************************************************************
2:
下载与现有版本相同的nginx包,并解压
***********************************************************************
3:
安装GEOIP模块
yum -y install geoip-devel
***********************************************************************
4:
安装依赖包
yum -y install gcc gcc-c++ autoconf automake make
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
yum -y install libxslt-devel libxml2 libxml2-dev gd-devel redhat-rpm-config perl-devel perl-ExtUtils-Embed gperftools
./configure 原模块 --with-http_geoip_module
***********************************************************************
5:
make && make install
***********************************************************************
6:
http增加
geoip_country /usr/share/GeoIP/GeoIP.dat;  
map $geoip_country_code $allowed_country {   
     default no;     
     CN yes;
     PH yes;
}

Server增加
if ($allowed_country = no) {
          return 404;
}
***********************************************************************
7:
或者
geoip_country /usr/share/GeoIP/GeoIP.dat;
fastcgi_param  COUNTRY_CODE "$geoip_country_code";
fastcgi_param  HTTP_COUNTRY_CODE "$geoip_country_code";

if ($geoip_country_code ~* (US|CN)) {
          return 404;
}
***********************************************************************
8:
封锁地区加白某些IP
http处添加
geoip_country /usr/share/GeoIP/GeoIP.dat; 
geo $remote_addr $ip_whitelist {
default 0;
include ip.conf;
}

Server处添加
if ($ip_whitelist = 1) {
proxy_pass http://web;
break;
}
#屏蔽的国家返回403
if ($geoip_country_code ~ "(HK|TW|PH|MO|US)") {
return 403;
}
proxy_pass http://web;
}
***********************************************************************

发表回复