2016-09-06 6 views
1

リクエストがローカルネットワーク(192.168.x.xなど)から来た場合、アクセスログを代替ファイルにリダイレクトするにはどうすればよいですか? 私が見つけたのはsome hintsリクエスタIPに基づいてログを無効にする方法はありますが、私の場合、これらの要求を別のファイルに記録したいので、開発目的のためにその特定のファイルのみを参照します。ローカルリクエスト用のnginxの代替ログファイル

答えて

0

答えは参照ページにありますので、10を取り消すだけです。

これは動作するはずです:

map $remote_addr $private_ip { 
    ~^192\.168\. 1; 
    default  0; 
} 
map $remote_addr $public_local { 
    ~^192\.168\. 0; 
    default  1; 
} 

server { 
    ... 
    # access-private.log for requests from local network 
    access_log /path/to/access-private.log main if=$private_ip; 

    # access.log for all other requests 
    access_log /path/to/access.log main if=$public_ip; 
    ... 
} 

は詳細についてはthisthisを参照してください。

EDIT:実際geoディレクティブは$remote_addrをマッピングするためのより適切である:

geo $private_ip { 
    192.168.0.0/16 1; 
    default   0; 
} 
geo $public_local { 
    192.168.0.0/16 0; 
    default   1; 
} 

詳細についてはthis documentを参照してください。

+0

0/1を逆にする必要があることはあまりにも明白ですが、ローカルネットワークからの要求のログを別のファイルに送ることについての質問がありました。私はあなたの答えを適切な解決策で修正しました – Pavel