wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
tar -xzvf GeoIP.tar.gz
cd GeoIP
./configure
make && make install
gunzip GeoIP.dat.gz
gunzip GeoLiteCity.dat.gz
mv GeoIP.dat /opt/nginx/geoip/
mv GeoLiteCity.dat /opt/nginx/geoip/
geoip_country /etc/nginx/geoip/GeoIP.dat;
geoip_city /etc/nginx/geoip/GeoLiteCity.dat;
if ($geoip_country_code = CN) {
return 403;
}
这里返回403在页面上来看就是nginx的403默认页面
如果要跳转到自定义页面,第一步再定义一个server模块用于访问自定义页面
server {
listen 81; #可以自定义端口(注意不要被占用了)
server_name your_server_name; #这里填写你的ip或域名
root /usr/local/nginx/html/; # 存放自定义页面的根目录
index index.html; #自定义页面
}
第二步将“return 403”修改为重定向
if ($geoip_country_code = CN) {
rewrite ^/(.*) http://your_server_name:81/ break;
}
your_server_name就是第一步中定义的server模块中的ip或域名,端口也要加上
ps:我看网上说可以自定义403页面然后直接“return 403”就可以跳转到自定义页面了,
我试过好像不行,在if语句里面无法直接return到自定义页面,
但是在if块外面是可以自定义403页面的。
有没有大神有更简单的方法跳转到自定义页面,欢迎评论O(∩_∩)O哈哈~