为Lighttpd安装mod_geoip在Fedora 9上

在Fedora 9上安装Lighttpd的mod_geoip

版本1.0
作者:Falko Timme

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

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

1初步说明

我假设你有一个运行的Fedora 9系统与工作lighttpd和PHP。

2安装mod_geoip

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

yum install lighttpd-mod_geoip

然后打开/etc/lighttpd/lighttpd.conf并将“mod_geoip”添加到server.modules部分; 还在server.modules部分下面添加geoip.db-filenamegeoip.memory-cache指令:

vi /etc/lighttpd/lighttpd.conf
[...]
server.modules              = (
#                               "mod_rewrite",
#                               "mod_redirect",
#                               "mod_alias",
                                "mod_geoip",
                                "mod_access",
#                               "mod_cml",
#                               "mod_trigger_b4_dl",
#                               "mod_auth",
#                               "mod_status",
#                               "mod_setenv",
                                "mod_fastcgi",
#                               "mod_proxy",
#                               "mod_simple_vhost",
#                               "mod_evhost",
#                               "mod_userdir",
#                               "mod_cgi",
#                               "mod_compress",
#                               "mod_ssi",
#                               "mod_usertrack",
#                               "mod_expire",
#                               "mod_secdownload",
#                               "mod_rrdtool",
                                "mod_accesslog" )

geoip.db-filename = "/usr/share/GeoIP/GeoIP.dat"
geoip.memory-cache = "enable"
[...]

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

cd /usr/share/GeoIP/
mv GeoIP.dat GeoIP.dat_orig
wget http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz
gunzip GeoIP.dat.gz

重启lighttpd:

/etc/init.d/lighttpd restart

已经这样了

3短测

要查看mod_geoip是否正常工作,我们可以在我们的一个网页空间中创建一个小型的PHP文件(例如/ var / www / lighttpd )(当然,您必须在lighttpd安装中启用PHP):

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

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

Array
(
    [HOSTNAME] => server1.example.com
    [TERM] => xterm
    [SHELL] => /bin/bash
    [HISTSIZE] => 1000
    [SSH_CLIENT] => 192.168.0.24 3419 22
    [QTDIR] =>
    [QTINC] => /include
    [SSH_TTY] => /dev/pts/0
    [USER] => root
    [LS_COLORS] => ...
    [CCACHE_DIR] => /var/cache/ccache
    [MAIL] => /var/spool/mail/root
    [PATH] => /sbin:/usr/sbin:/bin:/usr/bin
    [INPUTRC] => /etc/inputrc
    [PWD] => /usr/share/GeoIP
    [CCACHE_UMASK] => 002
    [LANG] => en_US.UTF-8
    [SHLVL] => 3
    [HOME] => /root
    [LOGNAME] => root
    [QTLIB] => /lib
    [CVS_RSH] => ssh
    [SSH_CONNECTION] => 192.168.0.24 3419 192.168.0.100 22
    [LESSOPEN] => |/usr/bin/lesspipe.sh %s
    [G_BROKEN_FILENAMES] => 1
    [_] => /usr/sbin/lighttpd
    [PHP_FCGI_CHILDREN] => 1
    [FCGI_ROLE] => RESPONDER
    [SERVER_SOFTWARE] => lighttpd/1.4.19
    [SERVER_NAME] => 84.143.142.69
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PORT] => 80
    [SERVER_ADDR] => 192.168.0.100
    [REMOTE_PORT] => 59559
    [REMOTE_ADDR] => 84.143.142.69
    [SCRIPT_NAME] => /geoiptest.php
    [PATH_INFO] =>
    [SCRIPT_FILENAME] => /var/www/lighttpd/geoiptest.php
    [DOCUMENT_ROOT] => /var/www/lighttpd/
    [REQUEST_URI] => /geoiptest.php
    [QUERY_STRING] =>
    [REQUEST_METHOD] => GET
    [REDIRECT_STATUS] => 200
    [SERVER_PROTOCOL] => HTTP/1.1
    [HTTP_HOST] => 84.143.142.69
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14
    [HTTP_ACCEPT] => ...
    [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
    [GEOIP_COUNTRY_CODE] => DE
    [GEOIP_COUNTRY_CODE3] => DEU
    [GEOIP_COUNTRY_NAME] => Germany
    [PHP_SELF] => /geoiptest.php
    [REQUEST_TIME] => 1211821794
)

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

4链接

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

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

支付宝扫一扫打赏

微信扫一扫打赏