nginx ログには、アクセス ログとエラー ログの 2 つの主な種類があります。アクセス ログは主にクライアントが nginx にアクセスするすべてのリクエストを記録し、形式はカスタマイズ可能です。エラー ログは主にクライアントが nginx にアクセスしてエラーが発生したときのログを記録し、形式はカスタマイズをサポートしていません。オプションで両方のログをオフにすることができます。
アクセス ログを通じて、ユーザーの地理的出身地、ジャンプ元、使用端末、特定の URL への訪問回数などの関連情報を取得できます。エラー ログを参照すると、システム内の特定のサービスまたはサーバーのパフォーマンスのボトルネックを取得できます。したがって、ログをうまく活用することで、多くの貴重な情報を得ることができます。
#アクセス ログ
[Access.log]
##log_format main '$remote_addr $remote_user [$time_local] "$request" $http_host '
'$status $upstream_status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $ssl_protocol $ssl_cipher $upstream_addr '
'$request_time $upstream_response_time';
ログイン後にコピー
説明:
#変数名 | 変数の説明
| 例
|
$remote_addr クライアント アドレス |
| ##113.140. 15.90
|
$remote_user
クライアント ユーザー名 |
- |
| ##$time_local
アクセス時間とタイムゾーン |
18/Jul/ 2012:17:00:01 0800 |
##リクエスト |
リクエストされたURI および | HTTPプロトコル "GET / pa/img/home/logo-alipay-t.png HTTP/1.1"
|
$http_host |
#リクエスト アドレスは、ブラウザに入力したアドレス (#IP またはドメイン名) |
#img.alipay.com ##10.253.70.103 |
$ステータス
|
HTTPリクエスト ステータス #200 |
|
$アップストリームステータス
| ##アップストリーム
ステータス##200 |
#$body_bytes_sent |
送信されるファイル コンテンツのサイズ。 client
|
547 |
#$http_referer | ジャンプソース |
"https://cashier.alilipay.com.../"
|
##$http_user_agent ユーザー ターミナル エージェント |
|
「Mozilla/4.0 (互換性; MSIE 8.0; Windows NT 5.1 ; Trident/4.0; SV1; GTB7.0; .NET4.0C;
|
#$ssl_protocol
| ##SSLプロトコル バージョン
| TLSv1
|
$ssl_cipher
交換データのアルゴリズム |
#RC4-SHA |
| $upstream_addr
バックグラウンドのアドレスupstream 、つまり実際にサービスを提供するホストのアドレス | 10.228.35.247:80 |
##$request_time |
リクエスト全体の合計時間 |
0.205
|
##$upstream_response_time |
リクエスト中、upstream応答時間 |
##0.002 |
注: $http_host の値は、ブラウザに入力した値に関連しています。
#エラー ログ
##エラー メッセージ
#エラーの説明 |
|
「アップストリームが時期尚早に (時期尚早に) 接続が閉じられました」
| ##uri をリクエストするときに発生する例外は、upstream がユーザーに応答を返さなかったときにユーザーが切断することによって発生します。システムには影響せず、無視できます
|
「recv() が失敗しました (104: ピアによって接続がリセットされました)」
#(1) サーバーの同時接続数がその容量を超えたため、サーバーは 一部の接続をダウンします; |
(2) クライアントはブラウザを閉じましたが、サーバーはまだクライアントにデータを送信しています;
(3) ブラウザが # をクリックしました##Stop
"(111: 接続が拒否されました) アップストリームへの接続中に" |
# ユーザーが接続しているときに、バックエンド アップストリームがハングするかブロックされると、ユーザーは次のエラーを受け取ります
|
"(111: 接続が拒否されました) アップストリームからの応答ヘッダーの読み取り中に" |
ユーザーが接続に成功した後にデータを読み取るとき、ユーザーがバックエンドに遭遇した場合 アップストリームがハングアップするか利用できません。アップストリームにリクエストを送信中に、次のエラーが発生します
|
##"(111: 接続が拒否されました) 「 |
Nginx と upstream が正常に接続されてデータを送信しているときに、バックエンド upstream がハングするか利用できない場合、このエラーが表示されます。
|
"(110: 接続がタイムアウトしました) アップストリームへの接続中に" |
後続の upstream
|
に接続するときに nginx がタイムアウトしました「(110: 接続がタイムアウトしました) アップストリームの読み取り中に」 |
#アップストリームからの応答の読み取り中に nginx がタイムアウトしました
|
#"(110: 接続がタイムアウトしました) 上流からの応答ヘッダーの読み取り中に"
|
nginx が upstream
|
からの応答ヘッダーの読み取り中にタイムアウトしました"(110: 接続がタイムアウトしました) アップストリームの読み取り中に" |
アップストリーム ## からの応答の読み取り中に nginx がタイムアウトしました
|
#"(104: ピアによる接続リセット) アップストリームへの接続中" | ##アップストリームは接続をリセットするために #RST を送信しました
|
#「アップストリームは応答ヘッダーの読み取り中に無効なヘッダーを送信しました」アップストリームから " アップストリームから送信された応答ヘッダーが無効です |
「アップストリームからの応答ヘッダーの読み取り中に、アップストリームは有効な HTTP/1.0 ヘッダーを送信しませんでした」 |
#アップストリームから送信された応答ヘッダーは無効です |
##「クライアントが大きすぎる本文を送信することを意図している」 |
は、クライアントのリクエストを設定するために使用されます。コンテンツの最大値、デフォルト値は 1M、 クライアントによって送信された | body が設定値
## を超えています
|
「ログを再度開く」 #ユーザーが kill -USR1 コマンドを送信
|
"gracefully shutting down", |
用户发送kill -WINCH命令 |
"no servers are inside upstream" |
upstream下未配置server |
"no live upstreams while connecting to upstream" |
upstream下的server全都挂了 |
"SSL_do_handshake() failed" |
SSL握手失败 |
"SSL_write() failed (SSL:) while sending to client" |
|
"(13: Permission denied) while reading upstream" |
|
"(98: Address already in use) while connecting to upstream" |
|
"(99: Cannot assign requested address) while connecting to upstream" |
|
"ngx_slab_alloc() failed: no memory in SSL session shared cache" |
ssl_session_cache大小不够等原因造成 |
"could not add new SSL session to the session cache while SSL handshaking" |
ssl_session_cache大小不够等原因造成 |
"send() failed (111: Connection refused)" |
|
|
以上がnginxログの読み方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。