OpenLiteSpeedのGeoIP DBを使ってみる
今日はWEBサーバとマーケティング関連のネタです。
筆者は本ブログで何度か紹介していますが、OpenLiteSpeedは高速なWEBサーバです。
このOpenLiteSpeedをUbuntuLinux上に環境構築して稼働させています。
このOpenLiteSpeedの設定画面には「MaxMind GeoIPDB」という箇所があります。
はい、こちらです。
何か設定が必要そうですが、何を設定したら良いやら?ですよね。


そもそもMaxMindとは?GeoIPとはなんぞや?
そもそもMaxMindとはなんぞや?という方もいるでしょう。
それとGeoIPとは?
まず、GeoIPはIPアドレスから地域を割り出すこと、
そしてこの地域IPデータベースを扱っているのが「MaxMind」社となります。
とはいえ専用線ではない限り、IPアドレスは固定ではなく一定期間使用しないと切り替わりますね。
そこで、定期的にIPアドレスのデータベースは最新化されています。
というわけでGeoIPについてイメージできたでしょうか。
それでは今回はこちらを設定して、是非ともOpenLiteSpeedを使いこなしていきましょう。
その前に、OpenLiteSpeedに導入するとどんないいことがあるの?
と思う方も多いでしょう。
はい、WEBサーバにアクセスした方のIPアドレスから地域がサーバの環境変数から取得可能になります。
つまり導入するとWEBにアクセスした時点で地域がわかるようになります。
え?なんか怖いなぁ、特定されたらヤダ!!
いえいえ、そんな怖いために使うのではありません。
アクセス元に対する広告やマーケティングが可能に!
これによって、アクセス元の地域別にメッセージや広告等や、オススメページを表示させるという、
アクセス元に対するマーケティングが可能になるのです。
例えば、チェーン店など各地に支店のあるWEBサイトに訪問した場合、
自動的にその地方のお店の紹介をするとかですね。
東北の方がアクセスしたら東北に近い店の情報を表示したり、こんなものが欲しいよね?とか
そういう広告配信の元になる基礎情報となるわけです。
というわけで、GeoIPのメリットがご理解いただけたでしょうか。
それでは、本題に行きましょう!!
まずはMaxMind社のWEBサイトに行きましょう。


上記のようにProductsメニューからGeoIPLiteFreeGeolocationDataを選択します。

そしてSignUpを選択しましょう。
SignUpページで必要なアカウント情報を入力します。

確認メールが来て、ID・PASSを入力してログインしたら早速ダウンロードができます。
左のダウンロードメニュー選択で以下の画面に飛びます。
GeoIP2Cityが良いでしょう。

ダウンロードしたら、Linuxサーバ上の/usr/share/にGeoIPフォルダを作成して、保存しましょう。
OpenLiteSpeedにGeoIPを設定する。
保存ができたら次はOpenLiteSpeed側の設定です。
先ほどのサーバ設定→一般から設定画面を開き、以下のように入力します。

Environment Variables(環境変数)
HTTP_GEOIP_CITY CITY_DB/city/names/en
HTTP_GEOIP_POSTAL_CODE CITY_DB/postal/code
HTTP_GEOIP_CITY_CONTINENT_CODE CITY_DB/continent/code
HTTP_GEOIP_CITY_COUNTRY_CODE CITY_DB/country/iso_code
HTTP_GEOIP_CITY_COUNTRY_NAME CITY_DB/country/names/en
HTTP_GEOIP_REGION CITY_DB/subdivisions/0/iso_code
HTTP_GEOIP_LATITUDE CITY_DB/location/latitude
HTTP_GEOIP_LONGITUDE CITY_DB/location/longitude
設定後はOpenLiteSpeedを再起動しましょう。
はい、これで何が変わったか?
OpenLiteSpeedのサーバの環境変数に上記が追加されて利用可能になります。
以下のようにphp_info()で簡単に確認ができます。

または以下のコードを何かのphpファイルに含めても確認できると思います。
<?php
echo '<pre>'.$_SERVER['HTTP_GEOIP_CITY_COUNTRY_CODE'];
echo '<pre>'.$_SERVER['HTTP_GEOIP_CITY_COUNTRY_NAME'];
echo '<pre>'.$_SERVER['HTTP_REGION_NAME'];
echo '<pre>'.$_SERVER['HTTP_GEOIP_CITY'];
echo '<pre>'.$_SERVER['HTTP_GEOIP_POSTAL_CODE'];
?>
これでphp側の処理などで地域別に振り分けていくような利用イメージが湧いたかと思います。
ただ、この地域IPデータベースの更新作業を手動で毎回行うのは面倒ですよね。
以下では自動で更新する方法を紹介します。
GeoIPデータベースを自動更新できるようにする
「Create new license key」でライセンスキーを発行します。

以下より自動更新アプリをダウンロードします。
https://github.com/maxmind/geoipupdate/releases
Ubuntuの場合は、debファイルが使えますね。
以下コマンドでダウンロード、インストールします。
$ curl -O https://github.com/maxmind/geoipupdate/releases/download/v4.8.0/geoipupdate_4.8.0_linux_amd64.deb
$ sudo dpkg -i geoipupdate_4.8.0_linux_amd64.deb
これで「geoipupdate」というコマンドが利用可能になります。
パスは/usr/bin/geoipupdateとなりますので、これを自動実行するように設定します。
以下のように週2回更新するよう設定します。(※日、木の2時10分)
10 2 * * 0,4 /usr/local/bin/geoipupdate
はい、今回はOpenLiteSpeedにGeoIPを設定する方法について紹介しました。
少しでもマーケティングのイメージが湧きましたでしょうかね。
というわけで、以上となります、何かの役に立てれば幸いです。
それでは!!