ホームページ >バックエンド開発 >PHPチュートリアル >エラーログの設定とアクセスログの設定とログレコード
错误ログ構成と访问ログ構成
[root@slave nginx]# vi /etc/nginx/nginx.conf
worker_processes 1;
error_log /var/log/nginx/error.log;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
log_format comman '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent " $http_referer" '
'"$http_user_agent" "$request_body" "$request_time"';
サーバー {
listen 80;
server_name www.wolf.com wolf.com;
location / {
root html/www;
インデックスIndex.html Index.htm;
}
access_log /var/log/nginx/www.log comman;
}
サーバー {
listen 80;
server_name bbs.wolf.com;
location / {
root html/bbs;
インデックス index.htmlindex.htm;
}
}
サーバー {
リッスン 80;
サーバー名 blog.wolf.com;
location / {
root html/blog;
index index.htmlindex.htm;
}
}
##status
server {
listen 80;
server_name status.wolf.com;
location / {
stub_status on;
access_log off ;
}
}
}
配置完了、测试如下
[root@slave nginx ]#カール www.wolf.com
http://www.wolf.com
[root@slave nginx]# tail -f www.log
192.168.0.203 - - [11/Jun/2016:16:26:52 +0800] "GET / HTTP/1.1" 200 20 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/ 1.4.2" "-" "0.000"
通过浏览器访问测试
=============================== =============================
ログは統計的なトラブルシューティングに非常に役立ちます。
この記事では、access_log、log_format、open_log_file_cache
、log_not_found、log_subrequest、rewrite_log、error_log などの nginx ログ関連の設定をまとめています。
nginx には非常に柔軟なロギング モードがあります。構成の各レベルは、独自の独立したアクセス ログを持つことができます。
ログ形式は、log_format コマンドによって定義されます。
ngx_http_log_module はリクエストログ形式を定義するために使用されます。
1. access_log コマンド
構文: access_log パス [format [buffer=size [flush=time]]];
access_log パス format gzip[=level] [buffer=size] [flush=time];
access_log syslog:server= address[,parameter=value] [format];
access_log off;
デフォルト値: access_log logs/access.log の組み合わせ;
設定セクション: http、サーバー、場所、場所にある場合は、limit_例外
gzip 圧縮レベル。
buffer はメモリ バッファ サイズを設定します。
キャッシュ領域にフラッシュが保存される最大時間。
ログを記録しない: access_log off;
デフォルトの結合フォーマットを使用してログを記録する: access_log logs/access.log または access_log logs/access.log を組み合わせた;
2. log_format コマンド
構文: log_format name string…;
デフォルト値: log_format 結合 "...";
設定セクション: http
name は形式名を表し、string は同等の形式を表します。
log_formatには、以下に示すように、Apacheの組み合わせログ形式に相当するデフォルトの組み合わせログ形式を設定する必要はありません。 $body_bytes_sent'
' "$http_referer" "$http_user_agent" ';
nginx がロード バランサー、squid、または nginx リバース プロキシの背後にある場合、Web サーバーはクライアントの実際の IP アドレスを直接取得できません。
$remote_addr はリバース プロキシの IP アドレスを取得します。リバース プロキシ サーバーは、転送された要求の http ヘッダー情報に X-Forwarded-For 情報を追加できます。これは、クライアントの IP アドレスとクライアントによって要求されたサーバー アドレスを記録するために使用されます。
PS: ユーザーの実際の IP を取得します。 http://www.ttlsa.com/html/2235.html を参照してください:
log_format porxy '$http_x_forwarded_for - $remote_user [$time_local]'
body_bytes_sent '
' "$http_referer " "$http_user_agent" ';
ログ形式では、次のような変数の注釈を使用できます:
$remote_addr、$http_x_forwarded_for はクライアントの IP アドレスを記録します
$remote_user はクライアントのユーザー名を記録します
$request は要求された URL と HTTP プロトコルを記録します
$status を記録しますrequest status
$body_bytes_sent 応答ヘッダーのサイズを除く、クライアントに送信されたバイト数。この変数は、Apache モジュール mod_log_config の「%B」パラメータと互換性があります。
$bytes_sent クライアントに送信された合計バイト数。
$connection 接続のシリアル番号。
$connection_requests 接続を通じて受信した現在のリクエストの数。
$msec のログ書き込み時間。単位は秒、精度はミリ秒です。
$pipe リクエストが HTTP パイプライン (パイプライン化) 経由で送信される場合、パイプ値は「p」、それ以外の場合は「.」です。
$http_referer は、どのページ リンクからアクセスされたかを記録します。
$http_user_agent は、クライアント ブラウザー関連の情報を記録します。
$request_length リクエストの長さ (リクエスト行、リクエスト ヘッダー、リクエスト本文を含む)。
$request_time リクエストの処理時間。単位は秒、精度はミリ秒です。クライアントに読み取られた最初のバイトから始まり、最後の文字がクライアントに送信され、ログが書き込まれるまでです。
$time_iso8601 ISO8601 標準形式の現地時間。
$time_local 共通ログ形式の現地時間。
[警告]クライアントに送信される応答ヘッダーには「sent_http_」プレフィックスが付いています。 たとえば、$sent_http_content_range。 [/warning]
例は次のとおりです:
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' "$http_user_agent" "$ http_x_forwarded_for" '
' '
'"$status" $body_bytes_sent $request_time $bytes_sent $request_length '
'[$upstream_response_time] [$srcache_fetch_status] [$srcache_store_status] [$srcache_expire]';
open_log_file_cache max=1000 =60s;
サーバー {
サーバー名 ~^(www. )?(.+)$;
access_log ログ/$2-access.log メイン;
location /srcache {
access_log ログ/access-srcache.log srcache_log;
構文: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
open_log_file_cache オフ;
デフォルト値: open_log_file_cache オフ;
設定セクション: http、サーバー、場所
ログ レコードごとに、ファイルが開かれます最初にログに書き込まれ、その後閉じられます。 open_log_file_cache を使用してログ ファイル キャッシュを設定できます (デフォルトはオフ)。形式は次のとおりです:
パラメーターのコメントは次のとおりです:
max: キャッシュ内のファイル記述子の最大数を設定します。キャッシュがいっぱいの場合は、使用します。 LRU アルゴリズムを使用して記述子を閉じます。
inactive: 生存時間を設定します。デフォルトは 10 秒です。
min_uses: ログ ファイル記述子がキャッシュに記録されるまでの、非アクティブ期間中にログ ファイルが使用される最小回数を設定します。デフォルトは 1 回です。
valid:チェック頻度を設定します。デフォルトは 60 秒です
off: キャッシュを無効にします
例は次のとおりです:
open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;
4. log_not_found 命令
構文: log_not_found on off;
デフォルト値: log_not_found on;
設定セクション: http 、サーバー、場所
存在しないエラーを error_log に記録するかどうか。デフォルトは「はい」です。
5. log_subrequest コマンド
構文: log_subrequest on | off;
デフォルト値: log_subrequest off;
設定セクション: http、server、location
access_log にサブリクエストのアクセスログを記録するかどうか。デフォルトではログに記録されません。
6. rewrite_log コマンド
は、ngx_http_rewrite_module モジュールによって提供されます。書き換えログを記録するために使用されます。デバッグ書き換えルールを有効にすることをお勧めします。 Nginx 書き換えルール ガイド
構文: rewrite_log on | off;
デフォルト値: rewrite_log off;
設定セクション: http、server、location、if
有効にすると、通知レベルの書き換えログがエラー ログに記録されます。
7. error_log コマンド
構文: error_log ファイル | syslog:server=value]; デフォルト値: error_log ログ | .log エラー;
設定セクション: main、http、server、location
設定エラー ログ。
この記事では、access_log、log_format、open_log_file_cache
、log_not_found、log_subrequest、rewrite_log、error_log などの nginx ログ関連の設定をまとめています。
nginx には非常に柔軟なロギング モードがあります。構成の各レベルは、独自の独立したアクセス ログを持つことができます。
ログ形式は、log_format コマンドによって定義されます。
ngx_http_log_module はリクエストログ形式を定義するために使用されます。
1. access_log コマンド
構文: access_log パス [format [buffer=size [flush=time]]];
access_log パス format gzip[=level] [buffer=size] [flush=time];
access_log syslog:server= address[,parameter=value] [format];
access_log off;
デフォルト値: access_log logs/access.log の組み合わせ;
設定セクション: http、サーバー、場所、場所にある場合は、limit_例外
gzip 圧縮レベル。
buffer はメモリ バッファ サイズを設定します。
フラッシュがキャッシュ領域に保存される最大時間。
ログを記録しない: access_log off;
デフォルトの結合フォーマットを使用してログを記録する: access_log logs/access.log または access_log logs/access.log を組み合わせた;
2. log_format コマンド
構文: log_format name string…;
デフォルト値: log_format 結合 "...";
設定セクション: http
name は形式名を表し、string は同等の形式を表します。
log_formatには、以下に示すように、Apacheの組み合わせログ形式に相当するデフォルトの組み合わせログ形式があります。 "$http_user_agent" ';
nginx がロード バランサー、squid、または nginx リバース プロキシの背後にある場合、Web サーバーはクライアントの実際の IP アドレスを直接取得できません。
$remote_addr はリバース プロキシの IP アドレスを取得します。リバース プロキシ サーバーは、転送された要求の http ヘッダー情報に X-Forwarded-For 情報を追加できます。これは、クライアントの IP アドレスとクライアントによって要求されたサーバー アドレスを記録するために使用されます。
PS: ユーザーの実際の IP を取得します。 http://www.ttlsa.com/html/2235.html を参照してください:
log_format porxy '$http_x_forwarded_for - $remote_user [$time_local]'
body_bytes_sent '
' "$http_referer " "$http_user_agent" ';
ログ形式では、次のような変数の注釈を使用できます:
$remote_addr、$http_x_forwarded_for はクライアントの IP アドレスを記録します
$remote_user はクライアントのユーザー名を記録します
$request は要求された URL と HTTP プロトコルを記録します
$status を記録しますrequest status
$body_bytes_sent 応答ヘッダーのサイズを除く、クライアントに送信されたバイト数。この変数は、Apache モジュール mod_log_config の「%B」パラメータと互換性があります。
$bytes_sent クライアントに送信された合計バイト数。
$connection 接続のシリアル番号。
$connection_requests 接続を通じて受信した現在のリクエストの数。
$msec のログ書き込み時間。単位は秒、精度はミリ秒です。
$pipe リクエストが HTTP パイプライン (パイプライン化) 経由で送信される場合、パイプ値は「p」、それ以外の場合は「.」です。
$http_referer は、どのページ リンクからアクセスされたかを記録します。
$http_user_agent は、クライアント ブラウザー関連の情報を記録します。
$request_length リクエストの長さ (リクエスト行、リクエスト ヘッダー、リクエスト本文を含む)。
$request_time リクエストの処理時間。単位は秒、精度はミリ秒です。クライアントに読み取られた最初のバイトから始まり、最後の文字がクライアントに送信され、ログが書き込まれるまでです。
$time_iso8601 ISO8601 標準形式の現地時間。
$time_local 共通ログ形式の現地時間。
[警告]クライアントに送信される応答ヘッダーには「sent_http_」プレフィックスが付いています。 たとえば、$sent_http_content_range。 [/warning]
例は次のとおりです:
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' "$http_user_agent" "$ http_x_forwarded_for" '
' '
'"$status" $body_bytes_sent $request_time $bytes_sent $request_length '
'[$upstream_response_time] [$srcache_fetch_status] [$srcache_store_status] [$srcache_expire]';
open_log_file_cache max=1000 =60s;
サーバー {
サーバー名 ~^(www. )?(.+)$;
access_log ログ/$2-access.log メイン;
location /srcache {
access_log ログ/access-srcache.log srcache_log;
構文: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
open_log_file_cache オフ;
デフォルト値: open_log_file_cache オフ;
設定セクション: http、サーバー、場所
ログ レコードごとに、ファイルが開かれます最初にログに書き込まれ、その後閉じられます。 open_log_file_cache を使用してログ ファイル キャッシュを設定できます (デフォルトはオフ)。形式は次のとおりです:
パラメーターのコメントは次のとおりです:
max: キャッシュ内のファイル記述子の最大数を設定します。キャッシュがいっぱいの場合は、使用します。 LRU アルゴリズムを使用して記述子を閉じます。
inactive: 生存時間を設定します。デフォルトは 10 秒です。
min_uses: ログ ファイル記述子がキャッシュに記録されるまでの、非アクティブ期間中にログ ファイルが使用される最小回数を設定します。デフォルトは 1 回です。
valid:チェック頻度を設定します。デフォルトは 60 秒です
off: キャッシュを無効にします
例は次のとおりです:
open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;
4. log_not_found 命令
構文: log_not_found on off;
デフォルト値: log_not_found on;
設定セクション: http 、サーバー、場所
存在しないエラーを error_log に記録するかどうか。デフォルトは「はい」です。
5. log_subrequest コマンド
構文: log_subrequest on | off;
デフォルト値: log_subrequest off;
設定セクション: http、server、location
access_log にサブリクエストのアクセスログを記録するかどうか。デフォルトではログに記録されません。
6. rewrite_log コマンド
は、ngx_http_rewrite_module モジュールによって提供されます。書き換えログを記録するために使用されます。デバッグ書き換えルールを有効にすることをお勧めします。 Nginx 書き換えルール ガイド
構文: rewrite_log on | off;
デフォルト値: rewrite_log off;
設定セクション: http、server、location、if
有効にすると、通知レベルの書き換えログがエラー ログに記録されます。
7. error_log コマンド
構文: error_log ファイル | syslog:server=value]; デフォルト値: error_log ログ | .log エラー;
設定セクション: main、http、server、location
設定エラー ログ。
以上、エラーログの設定、アクセスログの設定、ログ記録を内容も含めて紹介しましたが、PHPチュートリアルに興味のある方の参考になれば幸いです。