序文#
CDN を使用する際、Nginx のログには CDN のノードの IP アドレスが表示されるため、デバッグなどが非常に不便です。
この問題を解決するために、Nginx の設定ファイルでカスタムログフォーマットを定義して、ログに訪問者の実際の IP アドレスを表示することができます。
開始する#
まず、CDN のレスポンスヘッダーにユーザーの実際の IP アドレスが含まれている項目を確認する必要があります。
詳細については、前の記事を参照してください。
次に、Nginx のメイン設定ファイルを開き、http {} のセクションを見つけます。
お好みの場所に次のコードを挿入します。
log_format main '$http_cf_connecting_ip / $remote_addr - [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';
このコードの中で、mainはカスタムフォーマットの名前を表し、http_cf_connecting_ipは CDN のユーザーの実際の IP アドレスが含まれているヘッダーに置き換えてください。ヘッダーには http_を含める必要があります。その後のログは以下の形式で出力されます。
ユーザーの IP アドレス / ノードの IP アドレス - [アクセス時間] "リクエスト方法とディレクトリ" レスポンスコード 送信されたデータバイト数 リファラ元 URL ユーザーエージェント
次に、サイトの設定の http {} のセクションを見つけます。
以前のaccess_log
パラメーターを見つけて、セミコロンの前にmain
を追加します。
これで、このサイトのログはカスタムフォーマットで出力されます。
終わりに#
これで問題が解決しました。もし私の記事がお役に立ったと思われる場合は、
いいねを押したり、適度に寄付したり、コメント欄に意見を残してくださいにゃ〜
この記事はMix Spaceから xLog に同期されています。
元のリンクはhttps://blog.nekorua.com/posts/maintain/16.htmlです。