zoukankan      html  css  js  c++  java
  • nginx 配置geoip 屏蔽地区城市,实现判断国家IP跳转

    步骤    ./configure  --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_flv_module --user=www --group=www --with-http_gzip_static_module --with-http_geoip_module

    相应的省份代码:

    CN,01,”Anhui”
    CN,02,”Zhejiang”
    CN,03,”Jiangxi”
    CN,04,”Jiangsu”
    CN,05,”Jilin”
    CN,06,”Qinghai”
    CN,07,”Fujian”
    CN,08,”Heilongjiang”
    CN,09,”Henan”
    CN,10,”Hebei”
    CN,11,”Hunan”
    CN,12,”Hubei”
    CN,13,”Xinjiang”
    CN,14,”Xizang”
    CN,15,”Gansu”
    CN,16,”Guangxi”
    CN,18,”Guizhou”
    CN,19,”Liaoning”
    CN,20,”Nei Mongol”
    CN,21,”Ningxia”
    CN,22,”Beijing”
    CN,23,”Shanghai”
    CN,24,”Shanxi”
    CN,25,”Shandong”
    CN,26,”Shaanxi”
    CN,28,”Tianjin”
    CN,29,”Yunnan”
    CN,30,”Guangdong”
    CN,31,”Hainan”
    CN,32,”Sichuan”
    CN,33,”Chongqing”

    安装 Nginx
    因为要用到 http_geoip_module 模块,系统自带的 nginx 一般不带这个模块,所以要下载 nginx 源代码后自行编译:

    # wget http://nginx.org/download/nginx-0.9.6.tar.gz
    # tar zxvf nginx-0.9.6.tar.gz
    # cd nginx-0.9.6
    # ./configure --without-http_empty_gif_module --with-poll_module
    --with-http_stub_status_module --with-http_ssl_module
    --with-http_geoip_module
    # make; make install


    安装 MaxMind 的 GeoIP 库
    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,在相关地方加上如下的配置就可以了:

    # vi /etc/nginx/nginx.conf
    ...
    geoip_country /home/vpsee/GeoIP.dat;

    fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
    fastcgi_param GEOIP_COUNTRY_CODE3 $geoip_country_code3;
    fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;
    ...

     if ($geoip_country_code = CN) {
        root /home/vpsee/cn/;
     }


    这样,当来自中国的 IP 访问网站后就自动访问到预定的 /home/vpsee/cn 页面。关于 Nginx + GeoIP 还有很多有用的用法,比如做个简单的 CDN,来自中国的访问自动解析到国内服务器、来自美国的访问自动转向到美国服务器等。MaxMind 还提供了全球各个城市的 IP 信息,还可以下载城市 IP 数据库来针对不同城市做处理。

  • 相关阅读:
    XAMPP重要文件目录及配置
    xmlhttp
    深入php内核,从底层c语言剖析php实现原理
    史上最全的MSSQL复习笔记
    LNMP状态管理命令
    SSL证书更换(具体路径可参考iRedMail.tips文件)及邮件服务器架构
    (转)CentOS 7 —— /etc/rc.local 开机不执行
    从CMDB查询云平台组件或者IP简单脚本
    将电脑文件复制到vm虚拟机中,然后安装步骤
    Linux-vmware tools安装与cdrom挂载(转)
  • 原文地址:https://www.cnblogs.com/paddygege/p/7007085.html
Copyright © 2011-2022 走看看