由于之前没有接触过服务器,配置这个耗费了我好长时间
nginx 配置GeoIP实现不同国家访问不同的URL
首先要确保nginx已经配置了GeoIP模块,如果没有那就先来配置GeoIP
找到nginx源码目录下进行
/.configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module
--with-http_gzip_static_module --with-ipv6 --with-http_sub_module
--with-http_geoip_module
需要什么模块加什么模块,这是我自己需要的
安装 MaxMind 的 GeoIP 库
如果不想这样下载可以https://pan.baidu.com/s/1Vsyl0fmQPd-JQbJZ_A2COA这里下载,密码:evk5
MaxMind 提供了免费的 IP 地域数据库(GeoIP.dat),不过这个数据库文件是二进制的,需要用 GeoIP 库来读取,所以除了要下载 GeoIP.dat 文件外(见下一步),还需要安装能读取这个文件的库。
# wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
# tar -zxvf GeoIP.tar.gz
# cd GeoIP-1.4.6
# ./configure
# make; make install
刚才安装的库自动安装到 /usr/local/lib 下,所以这个目录需要加到动态链接配置里面以便运行相关程序的时候能自动绑定到这个 GeoIP 库:
# echo '/usr/local/lib' > /etc/ld.so.conf.d/geoip.conf
# ldconfig
下载 IP 数据库
MaxMind 提供了免费的 IP 地域数据库,这个数据库是二进制的,不能用文本编辑器打开,需要上面的 GeoIP 库来读取:
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
# gunzip GeoIP.dat.gz
配置 Nginx
最后是配置 nginx,在相关地方加上如下的配置就可以了:
在http{
.....
geoip_country /home/vpsee/GeoIP.dat;(这里注意填写自己的路径)
......
}
#如果IP是中国的就指定次路径
location / {
if ($geoip_country_code = CN) {
rewrite ^/ URL地址;
}
}
如果有报错请参考https://www.52os.net/articles/configure-nginx-using-geoip-allow-whitelist.html
http://www.jb51.net/article/54854.htm