httpd.confのHostNameLookupsを「on」にすると、すべてのアクセスについて、DNSルックアップ(DNSの逆引き)によって、IPアドレスからドメインを取得してアクセスログに記録されます。

初期値は「OFF」です。

もっとも、KeepAliveを「ON」にしておけば、ユーザからの一回の接続について一回のみのDNSルックアップ動作になりますが。

以下のような記述にしておけば、特定の拡張子に対するアクセスについてのみ DNSルックアップ動作が行われます。

CODE:
  1. HostnameLookups off
  2.  
  3. <files>
  4. HostnameLookups on
  5. </files>

とは言え、DNSルックアップはネットワーク全体に対する負荷が高いので、ある程度負荷の高いサイトなら、必ず 全面的に「OFF」にしておくべきです。

注意しておきたいのは、 HostnameLookupsがOFFになっていても、設定の他の部分でhost名による指定をした場合は、DNSルックアップ動作が行われてしまうということです。

例えば

CODE:
  1. # ホストベースのアクセス制限
  2. order allow,deny
  3. allow from all
  4. deny from .hoge.co.jp

というようにホスト名でアクセス制限をした場合には、当然、DNSルックアップ動作が行われパフォーマンスに大きな悪影響が出ます。

アクセス解析の関係で、どうしてもhost名が必要な場合は、解析前にapache附属の

logresolveでhost名に変換すればよいでしょう。

CODE:
  1. /usr/local/apache2/bin/logresolve &lt;access_log.2007-05-03&gt; test_log

※この処理自体も、指定したアクセスログ上のすべてのIPアドレスについてDNSルックアップ動作が行われますのでネットワークへの負荷は高くなります。別ネットワーク上で行う等の対策が必要です。