ホームページ バックエンド開発 PHPチュートリアル エラーログの設定とアクセスログの設定とログレコード

エラーログの設定とアクセスログの設定とログレコード

Jul 28, 2016 am 08:29 AM
access http log nbsp quot

错误ログ構成と访问ログ構成
[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チュートリアルに興味のある方の参考になれば幸いです。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Windows 11 でバックグラウンド アプリケーションを無効にする方法_バックグラウンド アプリケーションを無効にする Windows 11 チュートリアル Windows 11 でバックグラウンド アプリケーションを無効にする方法_バックグラウンド アプリケーションを無効にする Windows 11 チュートリアル May 07, 2024 pm 04:20 PM

1. Windows 11で設定を開きます。 Win+I ショートカットまたはその他の方法を使用できます。 2. 「アプリ」セクションに移動し、「アプリと機能」をクリックします。 3. バックグラウンドでの実行を禁止したいアプリケーションを見つけます。三点ボタンをクリックして、[詳細オプション] を選択します。 4. [バックグラウンド アプリケーションのアクセス許可] セクションを見つけて、目的の値を選択します。デフォルトでは、Windows 11 は電力最適化モードを設定します。これにより、Windows はアプリケーションがバックグラウンドでどのように動作するかを管理できるようになります。たとえば、バッテリーを節約するためにバッテリー セーバー モードを有効にすると、システムはすべてのアプリを自動的に終了します。 5. アプリケーションがバックグラウンドで実行されないようにするには、[なし] を選択します。プログラムが通知を送信していない、データの更新に失敗しているなどに気付いた場合は、次のことができることに注意してください。

DeepSeek PDFを変換する方法 DeepSeek PDFを変換する方法 Feb 19, 2025 pm 05:24 PM

DeepSeekはファイルを直接PDFに変換できません。ファイルの種類に応じて、異なる方法を使用できます。一般的なドキュメント(Word、Excel、PowerPoint):Microsoft Office、Libreoffice、その他のソフトウェアを使用してPDFとしてエクスポートします。画像:画像ビューアまたは画像処理ソフトウェアを使用してPDFとして保存します。 Webページ:ブラウザの「Print into PDF」関数を使用するか、PDFツールに専用のWebページを使用します。 UNCOMMONフォーマット:適切なコンバーターを見つけて、PDFに変換します。適切なツールを選択し、実際の状況に基づいて計画を作成することが重要です。

Javaでフィールドは何を意味しますか Javaでフィールドは何を意味しますか Apr 25, 2024 pm 10:18 PM

Java では、「フィールド」は、データまたは状態を格納するために使用されるクラスまたはインターフェイスのデータ メンバーです。フィールドのプロパティには、タイプ (任意の Java データ型)、アクセス権、静的 (インスタンスではなくクラスに属する)、最終 (不変)、および一時 (シリアル化されていない) が含まれます。フィールドは、オブジェクト データの保存やオブジェクトの状態の維持など、クラスまたはインターフェイスの状態情報を保存するために使用されます。

Java リフレクション メカニズムはクラスの動作をどのように変更しますか? Java リフレクション メカニズムはクラスの動作をどのように変更しますか? May 03, 2024 pm 06:15 PM

Java リフレクション メカニズムを使用すると、プログラムはソース コードを変更せずにクラスの動作を動的に変更できます。 Class オブジェクトを操作することで、newInstance() によるインスタンスの作成、プライベート フィールドの値の変更、プライベート メソッドの呼び出しなどが可能になります。ただし、リフレクションは予期しない動作やセキュリティ上の問題を引き起こす可能性があり、パフォーマンスのオーバーヘッドがあるため、注意して使用する必要があります。

Oracleでdbfファイルを読み取る方法 Oracleでdbfファイルを読み取る方法 May 10, 2024 am 01:27 AM

Oracle は、次の手順で dbf ファイルを読み取ることができます。外部テーブルを作成し、その dbf ファイルを参照し、データを Oracle テーブルにインポートします。

Java関数開発における一般的な例外の種類とその修復方法 Java関数開発における一般的な例外の種類とその修復方法 May 03, 2024 pm 02:09 PM

Java 関数開発における一般的な例外の種類とその修復方法 Java 関数の開発中に、関数の正しい実行に影響を与えるさまざまな例外が発生する可能性があります。一般的な例外の種類とその修復方法は次のとおりです。 1. NullPointerException 説明: 初期化されていないオブジェクトにアクセスするとスローされます。修正: オブジェクトを使用する前に、オブジェクトが null でないことを確認してください。サンプル コード: try{Stringname=null;System.out.println(name.length());}catch(NullPointerExceptione){

Vue でクロスドメイン iframe を使用する方法 Vue でクロスドメイン iframe を使用する方法 May 02, 2024 pm 10:48 PM

Vue で iframe クロスドメインの問題を解決する方法: CORS: バックエンド サーバーで CORS サポートを有効にし、XMLHttpRequest またはフェッチ API を使用して Vue で CORS リクエストを送信します。 JSONP: バックエンド サーバーの JSONP エンドポイントを使用して、Vue に JSONP スクリプトを動的に読み込みます。プロキシ サーバー: リクエストを転送するためにプロキシ サーバーを設定し、Vue のサードパーティ ライブラリ (axios など) を使用してリクエストを送信し、プロキシ サーバー URL を設定します。

C++ を使用して HTTP ストリーミングを実装するにはどうすればよいですか? C++ を使用して HTTP ストリーミングを実装するにはどうすればよいですか? May 31, 2024 am 11:06 AM

C++ で HTTP ストリーミングを実装するにはどうすればよいですか? Boost.Asio と asiohttps クライアント ライブラリを使用して、SSL ストリーム ソケットを作成します。サーバーに接続し、HTTP リクエストを送信します。 HTTP 応答ヘッダーを受信して​​出力します。 HTTP 応答本文を受信して​​出力します。

See all articles