如果經營一個跨國網站
想要針對不同國家來的客戶,呈現出客製化的內容、語系
或是想要導到當地比較的機房
可以利用apache + mod_geoip + rewrite 來實現

安裝 GeoIP
cd /usr/ports/net/GeoIP
make install

GeoIP資料庫預設會放在 /usr/local/share/GeoIP
剛安裝完後是空的,必須執行已下指令下載資料庫
/usr/local/bin/geoipupdate.sh

也可以將這個指令放入crontable排程中,定時更新資料庫
crontab -e
0 0 1 * * /usr/local/bin/geoipupdate.sh

之後便下載以下兩個檔案
-r--r--r--  1 root  wheel   1.0M  5  3 05:30 GeoIP.dat
-r--r--r--  1 root  wheel   1.9M  5  3 05:30 GeoIPv6.dat

安裝 mod_geoip
cd /usr/ports/www/mod_geoip2
make install

編輯apache設定
vi /usr/local/etc/apache22/httpd.conf
LoadModule geoip_module       libexec/apache22/mod_geoip.so
Include etc/apache22/extra/geoip.conf

vi /usr/local/etc/apache22/extra/geoip.conf
<IfModule mod_geoip.c>
 GeoIPEnable On
 GeoIPDBFile //usr/local/share/GeoIP/GeoIP.dat
</IfModule>

重啟apache
apachectl restart

編輯rewrite rule ,如果是美國來的ip則轉址到美國網站
vi .htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mybox.tw$ [NC]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^US$
RewriteRule ^(.*)$ http://us.mybox.tw/$1 [L,R]


undefined
Python新手使用Django架站的16堂課:
活用Django Web Framework快速建構動態網站
作者: 何敏煌  
出版社:博碩

arrow
arrow

    helloworld 發表在 痞客邦 留言(0) 人氣()