Nginx のアクセス ログとエラー ログを構成する方法

WBOY
リリース: 2023-05-16 08:10:05
転載
1750 人が閲覧しました

Nginx は、インターネット上のいくつかの最大規模のサイトの負荷を処理するオープンソースの高性能 HTTP およびリバース プロキシ サーバーです。 NGINX Web サーバーを管理するときに実行する最も一般的なタスクの 1 つは、ログ ファイルのチェックです。

ログの構成方法と読み取り方法を知ることは、詳細なデバッグ情報を提供するため、サーバーまたはアプリケーションの問題のトラブルシューティングを行うときに非常に役立ちます。

Nginx は、アクセス ログとエラー ログという 2 種類のログを使用してイベントを記録します。アクセス ログにはクライアント要求に関する情報が記録され、エラー ログにはサーバーとアプリケーションの問題に関する情報が記録されます。

Nginx アクセス ログの構成

Nginx は、顧客のリクエストが処理されるたびに、アクセス ログに新しいレコードを生成します。各イベント レコードにはタイムスタンプが含まれており、クライアントと要求されたリソースに関するさまざまな情報が含まれています。アクセスログには、訪問者の位置、訪問者が訪問したページなどが表示されます。

log_formatディレクティブを使用すると、ログの形式を定義できます。access_logディレクティブは、ログ ファイルの場所と形式を有効にして設定します。

access_logコマンドの最も基本的な構文は次のとおりです。

access_log log_file log_format;
ログイン後にコピー

ここで、log_fileはログ ファイルのフル パスです。log_formatは、ログ ファイルに使用される形式です。アクセス ログは、httpserverまたはlocationディレクティブのコンテキストで有効にすることができます。

デフォルトでは、Nginx メイン設定ファイルのhttpディレクティブは、グローバル アクセス ログ形式を設定します。

http { ... access_log /var/log/nginx/access.log; ... }
ログイン後にコピー

/etc/nginx/nginx.conf

メンテナンス性を高めるため、サーバーごとに個別のアクセス ログ ファイルを設定することをお勧めします。serverディレクティブに設定されたaccess_logディレクティブは、httpディレクティブに設定されたaccess_logを上書きします。

http { ... access_log /var/log/nginx/access.log; ... server { server_name domain.com access_log /var/log/nginx/domain.access.log; ... } }
ログイン後にコピー

/etc/nginx/conf.d/domain.com.conf

ログ形式が指定されていない場合、Nginx は次のように事前定義された組み合わせ形式を使用します:

log_format combined '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';
ログイン後にコピー

ログ形式を変更するには、デフォルト設定をオーバーライドするか、新しい設定を定義します。たとえば、 # Add でXX-Forwarded-Forヘッダーの値を追加することでcombined形式を拡張するmainという名前の新しいログ形式を定義します。次の定義ディレクティブを ##httpまたはserverに追加します:

log_format custom '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
ログイン後にコピー

新しいログ形式を使用するには、次のようにログ ファイルの後に名前を指定します:

access_log /var/log/nginx/access.log custom;
ログイン後にコピー

ただし、アクセス ログは非常に有益な情報を提供します。ただし、ディスク領域を占有するため、サーバーのパフォーマンスに影響を与える可能性があります。サーバーのリソースが不足していてサイトがビジー状態の場合は、アクセス ログを無効にすることができます。これを行うには、

access_logディレクティブの値をoffに設定します。理論的には、このような状況は発生せず、Nginx は以前のログ ファイルを自動的に削除します。

access_log off;
ログイン後にコピー

構成エラー ログ

Nginx は、アプリケーションおよび一般的なサーバー エラー メッセージをエラー ログ ファイルに書き込みます。 Web アプリケーションでエラーが発生した場合、問題のトラブルシューティングを開始する最初の場所はエラー ログです。

error_logディレクティブは、エラー ログの場所と重大度レベルを有効にして設定します。次の形式をとり、httpserverまたはlocationコンテキストで設定できます:

error_log log_file log_level
ログイン後にコピー

log_levelパラメータ ログレベルを設定します。以下に、重大度の低いものから高いものまで、レベルを示します。

debug info notice warn error crit alert emerg
ログイン後にコピー

各ログ レベルには、より高いレベルが含まれます。たとえば、ログ レベルを

warnに設定すると、Nginx はerrorcritalertおよびemerg もログに記録します。 ### 情報。log_levelパラメータが指定されていない場合、デフォルトはerrorです。デフォルトでは、error_logディレクティブは、メイン nginx.conf ファイル内のhttpディレクティブのコンテキストで定義されます:

http { ... error_log /var/log/nginx/error.log; ... }
ログイン後にコピー
/etc/nginx/nginx.confアクセス ログ付き 同様に、サーバーごとに個別のエラー ログ ファイルを設定することをお勧めします。これにより、http ディレクティブ コンテキストなどの上位レベルの設定がオーバーライドされます。たとえば、domain.com のエラー ログを

warn

に設定するには、次のようにします:

http { ... error_log /var/log/nginx/error.log; ... server { server_name domain.com error_log /var/log/nginx/domain.error.log warn; ... } }
ログイン後にコピー
構成ファイルを変更するたびに、変更を適用するには Nginx サービスをリロードする必要があります効果。

ログ ファイルの場所

Ubuntu、CentOS、Debian などのほとんどの Linux ディストリビューション。デフォルトでは、アクセス ログとエラー ログは

/var/log/nginx

ディレクトリにあります。Nginx ログ ファイルを読んで理解する

cat

lessgrepcut # を使用できます##、awkおよびその他のコマンドは、nginx ログ ファイルを開いて解析します。以下は、デフォルトの Nginx ログ形式を使用したアクセス ログ ファイルの記録です:

192.168.33.1 - - [15/Oct/2019:19:41:46 +0000] "GET / HTTP/1" 200 396 "-" "Mozilla/0 (X11; Linux x86_64) AppleWebKit/536 (KHTML, like Gecko) Chrome/38120 Safari/536"
ログイン後にコピー

让我们细分Nginx日志文件记录的每个字段意味着什么:

  • $remote_addr192.168.33.1-发出请求的客户端的IP地址。

  • $remote_user--HTTP身份验证用户。未设置用户名时,此字段显示-

  • [$time_local][15/Oct/2019:19:41:46 +0000]

本地服务器时间。

  • "$request""GET / HTTP/1.1"-请求类型,路径和协议。

  • $status200-服务器响应代码。

  • $body_bytes_sent396-服务器响应的大小(以字节为单位)。

  • "$http_referer""-"-引荐网址。

  • "$http_user_agent"Mozilla/5.0 ...-客户端的用户代理(网络浏览器)。

使用tail命令实时观看日志文件记录:tail -f access.log

以上がNginx のアクセス ログとエラー ログを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!