ここではWebアクセスのユーザーを把握するための手段の1つ、Cookieを利用する方法を解説しよう。
「Cookie機能をオンにする」ことは、とても簡単だ。Apacheの設定ファイル(httpd.conf)内で次のように記述すればよい。ただし、この機能を利用するにはusertrackモジュールが組み込まれている必要がある。RPMパッケージであれば標準で組み込まれているはずだ。Apache 2.0を例にすると、「LoadModule usertrack_module modules/mod_usertrack.so」行があるかを確認しよう。
2行目の「CookieExpires ...」は、有効な期間の指定になるが、単位は「years」、「months」、「weeks」、「days」、「hours」、「minutes」、「seconds」が選択肢にある。また、この行自体を指定しない場合には、Webブラウザを終了させた時点までとなる。
|
# vi /etc/httpd/conf/httpd.conf 〜中略〜 CookieTracking on CookieExpires "7 days" 〜以下略〜 |
上記の指定は、特に決まった個所を問わないが、決めかねる場合には「DocumentRoot "/var/www/html"」などの下辺りに記述すればよいだろう。
ここまででhttpdを再起動させればCokkieがオンになる。実際には、何らかの形で活用する手段が必要だ。まずはログファイルに書き出すのが一般的のため、次のように挙げてみた。Cookieと共に時間、リファラー、アクセス先を記録する例だ。
|
LogFormat "%{cookie}i %t %{Referer}i -> %U" cookie CustomLog logs/cookie_log cookie |
を加え、ログ記録設定部が次のように設定されている状態だ(ここでのカスタマイズ参考Tips:「Apacheでプライベートアドレスからのアクセスをログ記録させない 」など)。
|
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent LogFormat "%{cookie}i %t %{Referer}i -> %U" cookie SetEnvIf Remote_Addr 192.168.0. no_log CustomLog /var/log/httpd/access_log combined env=!no_log CustomLog logs/cookie_log cookie env=!no_log |
これにより、ログファイル「cookie_log」として次のように記録される。
|
# tail /var/log/httpd/cookie_log 〜中略〜 Apache=192.168.0.2.1048020181736294 [04/Apr/2003:23:15:00 +0900] http://galaxies.jp/mrtg/ -> /index.html |
注意点として、Cookie情報を標準のアクセスファイル「access_log」内に含める際には、アクセス解析ツールWebalizerやAnalogなどで誤解析など不具合が起きないことを確認したい。
Copyright © ITmedia, Inc. All Rights Reserved.