分享

为Apache增加GeoIP模块

 用勿龍潛 2012-10-29

为Apache增加GeoIP模块

1. 安装GeoIP模块(需要提前配置好EPEL软件仓库
  1. # yum -y install mod_geoip
复制代码

2. mod_geoip配置
  1. # cat /etc/httpd/conf.d/mod_geoip.conf
  2. LoadModule geoip_module modules/mod_geoip.so
  3. <IfModule mod_geoip.c>
  4.   GeoIPEnable On
  5.   GeoIPDBFile /usr/share/GeoIP/GeoIP.dat
  6. </IfModule>
复制代码

这个配置文件无需做修改,不过可以通过以下链接下载最新的数据库:
http://geolite./download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

3. 安装完毕之后需要重载配置文件方能生效
  1. # service httpd reload
复制代码


4. 可以通过PHP脚本来检测模块是否生效
  1. <?php
  2. echo 'Your IP address is ' . $_SERVER['REMOTE_ADDR'] . '<br />';
  3. echo 'You come from ' . $_SERVER['GEOIP_COUNTRY_NAME'] . '<br />';
  4. echo 'You come from ' . $_SERVER['GEOIP_COUNTRY_CODE'] . '<br />';
  5. echo 'You come from ' . $_SERVER['GEOIP_COUNTRY_CODE3'] . '<br />';
复制代码


5. 阻止指定国家的IP(黑名单)
  1. SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
  2. SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
  3. Deny from env=BlockCountry
  4. # 额外允许IP
  5. Allow from 10.1.2.3
复制代码

6. 阻止指定国家的IP(白名单)
  1. SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
  2. SetEnvIf GEOIP_COUNTRY_CODE CA AllowCountry
  3. SetEnvIf GEOIP_COUNTRY_CODE MX AllowCountry
  4. Deny from all
  5. Allow from env=AllowCountry
  6. #额外允许IP
  7. Allow from 10.1.2.3
复制代码

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多