为Apache2安装mod_geoip在CentOS 6.3上

在CentOS 6.3上安装Apache2的mod_geoip

本指南介绍如何在CentOS 6.3系统上使用Apache2设置mod_geoip 。 mod_geoip查找客户端最终用户的IP地址。 这允许您根据其国家/地区重定向或阻止用户。 您也可以将此技术用于您的OpenX (以前称为OpenAds或phpAdsNew)广告服务器,以允许地理位置定位

我不会保证这将为您工作!

1初步说明

我假设你有一个正在运行的CentOS 6.3系统,它具有工作的Apache2 + PHP,例如本教程所示: 在CentOS 6.3(LAMP)上安装PHP2和MySQL支持的Apache2

2安装mod_geoip

因为mod_geoip不可用于官方CentOS存储库,我们需要启用EPEL存储库:

rpm --import https://fedoraproject.org/static/0608B895.txt
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
rpm -ivh epel-release-6-7.noarch.rpm
yum install yum-priorities

编辑/etc/yum.repos.d/epel.repo ...

vi /etc/yum.repos.d/epel.repo

...并将行优先级= 10添加到[epel]部分:

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[...]

要安装mod_geoip,我们只需运行:

yum install mod_geoip

然后,您可以在/ usr / share / GeoIP目录中找到GeoIP数据库( GeoIP.dat )。 随着IP地址的分配可以随着时间的推移而改变,现在下载最新的GeoIP.dat是个好主意:

cd /usr/share/GeoIP/
mv GeoIP.dat GeoIP.dat_orig
wget -N -q http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gunzip GeoIP.dat.gz

接下来我们重新启动Apache:

/etc/init.d/httpd restart

已经这样了

3短测

要查看mod_geoip是否正常工作,我们可以在我们的一个网页空间中创建一个小PHP文件(例如/ var / www / html ):

vi /var/www/html/geoiptest.php
<?php
print_r($_SERVER);
?>

在浏览器中调用该文件,并显示SERVER数组,其中包含GEOIP_COUNTRY_CODEGEOIP_CONTINENT_CODEGEOIP_COUNTRY_NAME的值 (请确保您从公共IP地址(而不是本地IP地址调用该文件)

Array
(
    [GEOIP_CONTINENT_CODE] => EU
    [GEOIP_COUNTRY_CODE] => DE
    [GEOIP_COUNTRY_NAME] => Germany
    [HTTP_HOST] => 84.143.142.69
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1
    [HTTP_ACCEPT] => text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
    [HTTP_ACCEPT_LANGUAGE] => en-us,en;q=0.5
    [HTTP_ACCEPT_ENCODING] => gzip,deflate
    [HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7
    [HTTP_KEEP_ALIVE] => 300
    [HTTP_CONNECTION] => keep-alive
    [PATH] => /sbin:/usr/sbin:/bin:/usr/bin
    [SERVER_SIGNATURE] => <address>Apache/2.2.15 (CentOS) Server at www.example.org Port 80</address>

    [SERVER_SOFTWARE] => Apache/2.2.15 (CentOS)
    [SERVER_NAME] => 84.143.142.69
    [SERVER_ADDR] => 192.168.0.100
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => 84.143.142.69
    [DOCUMENT_ROOT] => /var/www/html
    [SERVER_ADMIN] => root@localhost
    [SCRIPT_FILENAME] => /var/www/html/geoiptest.php
    [REMOTE_PORT] => 57421
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] =>
    [REQUEST_URI] => /geoiptest.php
    [SCRIPT_NAME] => /geoiptest.php
    [PHP_SELF] => /geoiptest.php
    [REQUEST_TIME] => 1344547179
)

如果要为OpenX广告服务器使用Apache2 + mod_geoip,请确保在“设置”>“主要设置”>“地理位置定位设置”下选择MaxMind mod_apache GeoIP

4使用案例

您可以使用mod_geoip根据其国家/地区重定向或阻止/允许用户。 你可以在这里找到一些有用的例子: http : //www.maxmind.com/app/mod_geoip

5链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏