検索
ホームページ運用・保守NginxNginx でログをカスタマイズし、ログ バッファを有効にする方法

アクセス ログ

nginx は、リクエストを処理した直後に、クライアント リクエストに関する情報をアクセス ログに書き込みます。デフォルトでは、アクセス ログは logs/access.log にあり、情報は事前定義された組み合わせ形式でログに書き込まれます。

アクセス情報を正確に記録したい場合は、以下に示すように、より完全なアクセス ログ形式をカスタマイズする必要があります。

http {
  log_format geoproxy
  '[$time_local] $remote_addr '
  '$realip_remote_addr $remote_user '
  '$request_method $server_protocol '
  '$scheme $server_name $uri $status '
  '$request_time $body_bytes_sent '
  '$geoip_city_country_code3 $geoip_region '
  '"$geoip_city" $http_x_forwarded_for '
  '$upstream_status $upstream_response_time '
  '"$http_referer" "$http_user_agent"';
  ...
}

このログ構成は geoproxy という名前であり、多くの nginx 変数を使用して、 nginx のログ機能をデモンストレーションします。構成オプションの各変数の具体的な意味の詳細な説明:

ユーザーがリクエストを開始すると、サーバー時間 $time_local が記録され、$remote_user 値は基本認証によるユーザー名になります。

は nginx に使用され、オープン接続の IP アドレスと geoip_proxy および realip_header 命令のクライアント IP アドレスを処理します;

そして、http リクエスト メソッド $request_method、プロトコル $server_protocol および http メソッド $ を記録します。スキーム: http または https;

もちろん、サーバー名 $server_name、要求された URI、および応答ステータス コードもあります;

基本情報に加えて、いくつかの情報もあります。統計結果データ: リクエスト処理のミリ秒レベルの時間 $request_time、サーバー応答のデータ ブロック サイズ $body_bytes_sent;

さらに、クライアントの国 $geoip_city_country_code3、地域 $geoip_region および都市情報 $ geoip_city も記録されます。

変数 $http_x_forwarded_for は、他のプロキシ サーバーによって開始されたリクエストを記録するために使用されます。リクエストの x-forwarded-for ヘッダー メッセージ。

上流モジュールの一部のデータも記録されます。ログに記録される: プロキシサーバーの応答ステータスコード $upstream_status、接続の確立、および上流サーバーから受信した最後の応答本文 バイト時間 $upstream_response_time 、上流サーバーへの接続を確立するまでの時間 $upstream_connect_time 、接続を確立し、上流の $upstream_header_time から応答ヘッダーの最初のバイトを取得します。

リクエスト ソース $http_referer とユーザー エージェント $http_user_agent もログに記録できます;

nginx のログ機能は非常に強力かつ柔軟です。ログ形式 log_format ディレクティブは、http ブロックレベルのディレクティブ内でのみ機能し、すべての時間値はミリ秒単位であり、ミリ秒の解像度で測定されます。 。

この形式のログ構成では、次のタイプのログが生成されます:

[25/feb/2019:16:20:42 0000] 10.0.1.16 192.168.0.122 derek

get http/1.1 http / 200 0.001 370 usa mi
"ann arbor" - 200 0.001 "-" "curl/7.47.0"

必要な場合このログ設定を使用します。access_log ディレクティブと組み合わせて使用​​する必要があります。access_log ディレクティブは、パラメータとして使用されるログ ディレクトリと設定名を受け取ります:

server {
  access_log /var/log/nginx/access.log geoproxy;
  ...
}

access_log は複数のコンテキストで使用でき、各コンテキストは独自のログ ディレクトリとログ記録形式を定義します。

結論: nginx のログ モジュールを使用すると、さまざまなログ ファイルを表示するために、さまざまなシナリオに合わせてログ形式を構成できます。

実際のアプリケーションでは、コンテキストごとに異なるログを構成すると非常に便利です。記録されるログの内容は、単純な情報でも、必要なすべての情報を詳細に記録することもできます。それだけでなく、ログ コンテンツはテキスト

をサポートするだけでなく、json 形式や xml 形式でデータを記録することもできます。実際、nginx ログは、サーバー トラフィック、クライアントの使用状況、クライアントの生成元などの情報を理解するのに役立ちます。さらに、アクセス ログは、上流のサーバーまたは特定の URI に関連する応答や問題を特定するのにも役立ちます。アクセス ログは、トラフィックの分析や実際のユーザー操作シナリオのシミュレーションに使用できるため、テストにも役立ちます。ログは、トラブルシューティング、デバッグ、アプリケーション分析、ビジネス調整に不可欠です。

エラー ログ

nginx エラー ログを正確に見つけるには、組み込みの error_log ディレクティブを使用してエラー ログ ディレクトリとレベルを定義します。エラー ログを記録します。設定は次のとおりです :

error_log /var/log/nginx/error.log warn;

error_log ディレクティブの設定には、必須のログ ディレクトリとオプションのエラー レベル オプションが必要です。

if ディレクティブを除き、error_log ディレクティブはすべてのコンテキストで使用できます。エラー ログ レベルには、

debug、info、notice、warn、error、crit、alert、および emerg が含まれます。指定されたログ

レベルの順序は、最小のレコードから最も厳密なレコードへのログ レベルの順序です。 nginx サーバーをコンパイルするときは、デバッグ ログ

# を --with-debug フラグとともに使用する必要があることに注意してください。

サーバー構成にエラーがある場合は、まずエラー ログを確認して問題を特定する必要があります。エラー ログ

# は、アプリケーション サーバー (fastcgi サービスなど) を見つけるのに役立つツールでもあります。エラー ログを通じて、ワーカー プロセスの接続エラー、メモリ割り当て、クライアント IP、およびアプリケーション サーバーの問題をデバッグできます。エラー ログ形式はカスタム ログ形式をサポートしていませんが、現在の時刻、ログ レベル、特定の情報などのデータも記録されます。

注意:错误日志的默认设置适用于全局。要覆盖它,请将 error_log 指令放在 main (顶级)配置上下文中。 error_log 在开源 nginx 1.5.2 版中添加了在同一配置级别指定多个指令的功能。

通过 syslog 将日志发送到统一服务器

既然不再需要将日志写到磁盘的某个目录,而是发送到统一的日志服务器,则将原有的目录部分替换为服务器 ip 即可,配置如下:

error_log syslog:server=10.0.1.42 debug;
access_log syslog:server=10.0.1.42,tag=nginx,severity=info geoproxy;

#error_log server=unix:/var/log/nginx.sock debug;
#access_log syslog:server=[2001:db8::1]:1234,facility=local7,tag=nginx,severity=info;

error_log 和 access_log 指令的 syslog 参数紧跟冒号 : 和一些参数选项。包括:必选的 server 标记表示需要连接的 ip、dns 名称或 unix 套接字;

可以使用如上注释的高端玩。

可选参数有 facility 、 severity 、 tag :

server 参数接收带端口的 ip 地址或 dns 名称;默认是 udp 514 端口。

facility 参数设置 syslog 的类型 facility ,值是 syslog rfc 标准定义的 23 个值中一个,默认值为 local7 。其他可能的值是: auth , authpriv , daemon , cron , ftp , lpr , kern , mail , news , syslog , user , uucp , local0 ... local7

tag 参数表示日志文件中显示时候的标题,默认值是 nginx 。

severity 设置消息严重程度,默认是 info 级别日志。

日志缓冲区

当系统处于负载状态时,启用日志缓冲区以降低 nginx worker 进程阻塞。大量的磁盘读写和 cpu 资源使用对于服务器资源也是一种巨大消耗。将日志数据缓冲到内存中可能是很小的一个优化手段, buffer 参数意义是缓冲区的大小,功能是当缓冲区已经写满时,日志会被写入文件中; flush 参数意义是缓冲区内日志在缓冲区内存中保存的最长时间,功能即当缓存中的日志超过最大缓存时间,也会被写入到文件中, 不足的地方即写入到日志文件的日志有些许延迟,即时调试中应当关闭日志缓冲。 。配置如下:

http {
  access_log /var/log/nginx/access.log main buffer=32k flush=1m;
}

以上がNginx でログをカスタマイズし、ログ バッファを有効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Nginx vs. Apache:パフォーマンス、スケーラビリティ、効率Nginx vs. Apache:パフォーマンス、スケーラビリティ、効率Apr 19, 2025 am 12:05 AM

NginxとApacheはどちらも強力なWebサーバーであり、それぞれがパフォーマンス、スケーラビリティ、効率の点で独自の利点と短所を備えています。 1)nginxは、静的なコンテンツを処理し、逆プロキシを逆にするときにうまく機能します。 2)Apacheは、動的コンテンツを処理するときにパフォーマンスが向上し、リッチモジュールサポートが必要なプロジェクトに適しています。サーバーの選択は、プロジェクトの要件とシナリオに基づいて決定する必要があります。

究極の対決:Nginx vs. Apache究極の対決:Nginx vs. ApacheApr 18, 2025 am 12:02 AM

Nginxは、高い並行リクエストの処理に適していますが、Apacheは複雑な構成と機能的拡張が必要な​​シナリオに適しています。 1.Nginxは、イベント駆動型の非ブロッキングアーキテクチャを採用しており、高電流環境に適しています。 2。Apacheはプロセスまたはスレッドモデルを採用して、複雑な構成のニーズに適したリッチモジュールエコシステムを提供します。

Nginx in Action:例と現実世界のアプリケーションNginx in Action:例と現実世界のアプリケーションApr 17, 2025 am 12:18 AM

Nginxは、Webサイトのパフォーマンス、セキュリティ、およびスケーラビリティを改善するために使用できます。 1)逆プロキシおよびロードバランサーとして、Nginxはバックエンドサービスを最適化し、トラフィックを共有できます。 2)イベント駆動型および非同期アーキテクチャを通じて、nginxは高い並行接続を効率的に処理します。 3)構成ファイルでは、静的ファイルサービスやロードバランシングなどのルールの柔軟な定義を可能にします。 4)最適化の提案には、GZIP圧縮の有効化、キャッシュの使用、およびワーカープロセスの調整が含まれます。

Nginxユニット:さまざまなプログラミング言語をサポートしますNginxユニット:さまざまなプログラミング言語をサポートしますApr 16, 2025 am 12:15 AM

Nginxunitは複数のプログラミング言語をサポートし、モジュラー設計を通じて実装されています。 1。言語モジュールの読み込み:構成ファイルに従って対応するモジュールをロードします。 2。アプリケーションの起動:呼び出し言語が実行されたときにアプリケーションコードを実行します。 3。リクエスト処理:リクエストをアプリケーションインスタンスに転送します。 4。応答返品:処理された応答をクライアントに返します。

nginxとapacheを選択する:あなたのニーズに合った適切nginxとapacheを選択する:あなたのニーズに合った適切Apr 15, 2025 am 12:04 AM

NginxとApacheには独自の利点と短所があり、さまざまなシナリオに適しています。 1.Nginxは、高い並行性と低リソース消費シナリオに適しています。 2。Apacheは、複雑な構成とリッチモジュールが必要なシナリオに適しています。コア機能、パフォーマンスの違い、ベストプラクティスを比較することで、ニーズに最適なサーバーソフトウェアを選択するのに役立ちます。

nginxを開始する方法nginxを開始する方法Apr 14, 2025 pm 01:06 PM

質問:nginxを開始する方法は?回答:nginxスタートアップnginx検証nginxはnginxを開始しました他のスタートアップオプションを自動的に開始

Nginxが開始されるかどうかを確認する方法Nginxが開始されるかどうかを確認する方法Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

nginxを閉じる方法nginxを閉じる方法Apr 14, 2025 pm 01:00 PM

NGINXサービスをシャットダウンするには、次の手順に従ってください。インストールタイプを決定します:Red Hat/Centos(SystemCtl Status Nginx)またはDebian/Ubuntu(Service Nginx Status)サービスを停止します:Red Hat/Centos(SystemCtl Stop Nginx)またはDebian/Ubuntu(Service Nginx Stop)無効自動起動(オプション):Debuntos/Centos/Centos/Centos/Centos/Centos (syst

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。