apache配置根据geoip跳转
为什么要配置GEOIP: 根据访问者ip跳转到相应的网站,例如本次配置的的是如果访问者是来自俄罗斯,则跳转到俄语版,访问者来自巴西,则跳转到葡萄牙语版,并且屏蔽来自中国的IP。
服务器环境 centos6+apache+php,为了简化配置,不编译使用yum安装
1.查看系统版本
cat /etc/issus && uname -p
CentOS release 6.3 (Final)
Kernel \r on an \m
x86_64
2.配置CentOS使用EPEL源,官方源不带 apache的mod_geoip
EPEL (Extra Packages for Enterprise Linux)是一个针对RHEL及其衍生发行版(比如 CentOS、Scientific Linux、Oracle Enterprise Linux)提供高质量高可靠性的软件包项目,由fedora维护,是我这样子喜欢用yum的懒人的最爱。
使用很简单:
我们需要安装epel-release软件包,这个软件包会自动配置yum的软件仓库。访问 http://download.fedoraproject.org/pub/epel 按照自己的系统和cpu架构选择相应的包安装,我这里是centos 6 64位系统:
rpm -ivh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
安装好后就能用yum 来安装apache的mod_geoip模块了。
3.安装GeoIP模块
yum -y install mod_geoip
安装好后重启apache,并查看mod_geoip是否加载,如果看到 geoip_module (shared) 就说明加载成功了
service httpd restart
httpd -t -D DUMP_MODULES
4.下载最新的geoip国家库
yum安装的mod_geoip库比较老,去Geoip的官网下载最新GeoLite Country库并替换原有的GeoIP.dat,下载地址:http://dev.maxmind.com/geoip/legacy/geolite/,解压替换:
gzip -d GeoIP.dat.gz
mv GeoIP.dat /usr/share/GeoIP/GeoIP.dat
5.配置 mod_geoip 跳转
配置比较简单,直接贴我的配置:
LoadModule geoip_module modules/mod_geoip.so
<IfModule mod_geoip.c>
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat
#屏蔽中国IP
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
#Deny from env=BlockCountry 注意:这一条要加到apache虚拟主机配置文件中
#俄语版跳转到俄语主页
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^RU$
RewriteRule ^(.*)$ http://www.ru.com/ru_home.htm$1 [R,L]
#巴西版跳转到葡萄牙语主页
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^BR$
RewriteRule ^(.*)$ http://www.br.com/pt_home.htm$1 [R,L]
</IfModule>
6.测试
用google搜索 russia proxy online birazil proxy online china Proxy online
之后选一个在线代理,打开网站试试看有没有生效
参考文章
http://dev.maxmind.com/geoip/legacy/mod_geoip2/
http://ubuntuforums.org/showthread.php?t=1410627