Apacheログから内部リクエストを除外

Apacheログから内部リクエストを除外

私はUbuntuサーバーでApache2を実行しています。子プロセスを管理するためのApacheの内部要求に関する広範なログがあります。ログファイルは次の行で埋められます。

::1 - - [10/May/2015:23:16:31 +0200] "OPTIONS * HTTP/1.0" 200 125 "-" "Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.9 OpenSSL/1.0.1f (internal dummy connection)"
::1 - - [10/May/2015:23:16:32 +0200] "OPTIONS * HTTP/1.0" 200 125 "-" "Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.9 OpenSSL/1.0.1f (internal dummy connection)"
::1 - - [10/May/2015:23:16:33 +0200] "OPTIONS * HTTP/1.0" 200 125 "-" "Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.9 OpenSSL/1.0.1f (internal dummy connection)"

だから私はそれらを除いて以下の指示に従うことにしました。内部仮想接続

<VirtualHost *:80
  ...
  SetEnvIf Remote_Addr "127\.0\.0\.1" loopback
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined env=!loopback
</VirtualHost>

次のコマンドを使用してApacheを再起動します。service apache2 restart

私はまだ数秒ごとにログラインを取得します。

何が問題なの?この行をVirtualHost定義の外部に配置する必要がありますか?

答え1

もう一つの解決策は仮想ホストループバックインターフェイスからのすべての要求をキャプチャして他のログファイルに送信したり、まったくログに記録したりしない設定ファイルの先頭のセクション:

<VirtualHost 127.0.0.1:80 [::1]:80>
        # catch local requests
        ErrorLog ${APACHE_LOG_DIR}/error_local.log
        Loglevel warn
        CustomLog ${APACHE_LOG_DIR}/access_local.log combined
</VirtualHost>

答え2

KMが提案したように、解決策はIPv6を考慮することです。

この行を次に変更しました。

SetEnvIf Remote_Addr "::1" loopback
SetEnvIf Remote_Addr "127\.0\.0\.1" loopback
CustomLog logs/access_log combined env=!loopback

関連情報