元のリンク: http://blog.csdn.net/xyang81/article/details/51814787
Nginx 構成はモジュール単位で編成されており、各モジュールには 1 つ以上の命令が含まれており、その命令は最小の構成ファイルに含まれています。構成単位では、すべての構成項目は命令です。たとえば、http コア モジュールの include、default_type、および sendfile 命令はすべて http モジュールに属します。すべての nginx モジュールの手順については、公式ドキュメントを参照してください: http://nginx.org/en/docs/dirindex.html
<code>注意:以下配置中的“上下文”表示指令可以配置在哪些模块中。
main:顶层配置,约束服务器的行为
</code>
ログイン後にコピー
1. サーバーレベルのコア構成
コマンド |
コンテキスト |
構文 | デフォルト値 |
機能の説明 |
user |
main |
userEveryone nobyd; |
nobody |
ワーカースレッドを実行するためのユーザー権限 |
デーモン |
main |
デーモンはい; |
はい | nginxがデーモンとして実行されるかどうか? |
worker_processes |
main |
worker_processesnumber; |
1 |
ワーカープロセスの数を構成します。従来の Web サーバー (Apache など) はすべて同期ブロッキング モデルであり、1 つのリクエストが入力される (スレッド) モードであり、受信 (スレッド) の数がある程度増加すると、スレッドとプロセスの切り替えにより多くの CPU 時間が浪費され、パフォーマンスが低下します。急激に変化するため、負荷率は高くありません。 Nginx はイベントベースのノンブロッキング多重化 (epoll または kquene) モデルであり、1 つのプロセスが短期間に多数のリクエストに応答できます。一般に、この値を CPU コアの数以下に設定することをお勧めします。CPU コアの数よりも大きい場合は、メリットが得られません。むしろ、プロセス切り替えのオーバーヘッドに悪影響を及ぼす可能性があります。 |
worker_connections |
events |
worker_connectionsnumber; |
1024 |
プロセスごとに許可される同時接続の最大数を示す、同時応答機能の主要な構成値。 maxConnection = work_connections * work_processes; 通常、ブラウザは同時に 2 つの接続を開きます。nginx が到着した後のサーバーへの接続数も 2 つになります。通常、maxConnection = work_connections * work_processes / 2; アンチプロキシ サーバーとして動作する場合、maxConnection = work_connections * work_processes / 4; |
use |
events |
use epoll; |
さまざまなプラットフォームに応じて、最も効率的なものを選択します接続処理メソッド |
接続要求の処理メソッドメソッドを指定します。 Linux カーネル 2.6 以降では、デフォルトで epoll メソッドが使用されます。他のプラットフォームについては、http://nginx.org/en/docs/events.html を参照してください。 注: 超高負荷下で最高のネットワーク応答機能を実現するには、ネットワークを最適化する必要があります 関連する Linux カーネル パラメーター |
worker_cpu_affinity |
main |
worker_cpu_affinity cpumask…; |
None |
ワーカー プロセスを特定の CPU にバインドし、プロセス間の切り替えによる CPU オーバーヘッドを削減します。バイナリ ビットを使用して、プロセスがどの CPU コアにバインドされているかを示します。たとえば、8 コアと 4 プロセスを使用する場合の設定方法は次のようになります。 Linux カーネル ファイル記述子の数 |
最大数を設定しますnginx が開くことができるファイル記述子の数。 Linux には各プロセスで開くことができるファイル記述の数に制限があるため、通常、デフォルトは 1024 です。Linux がデフォルトで開くことができるファイル ハンドルの数の制限は、ulimit -n FILECNT または /etc を使用して変更できます。 /securit/limits.conf 設定。推奨値は、システムの最大数/プロセスの数です。ただし、プロセス間の負荷は均等に分散されていないため、より大きく設定することができます。推奨値: 655350
|
error_log |
main、http、mail、stream、server、location |
error_log ログ ファイルのパス ログ レベル; |
error_log logs/error.log error; |
のパスを設定しますエラーログファイルとログレベル。ログ レベルには、デバッグ、情報、通知、警告、エラー、クリティカル、アラート、および緊急が含まれます。 nginxのログはsyslogを利用して出力されるため、出力されるログ形式は一定であり、システム運用保守担当者はログルールに従ってエラーチェックや統計分析を行うことができます。詳細については、公式ドキュメントを参照してください: http://nginx.org/en/docs/ngx_core_module.html#error_log
|
pid |
main |
pid デーモン ソケット ファイル パス; |
pid logs/nginx .pid |
nginx デーモン ID ストレージ ファイル パスを設定します (ワーカー プロセスではありません)
|
上記は、サーバーレベルの動作を管理する nginx のトップレベルの構成です。設定の詳細については、公式ドキュメントを参照してください: http://nginx.org/en/docs/ngx_core_module.html#working_directory
2. HTTP モジュールのコア設定
nginx は、最も一般的に接続される HTTP リバース プロキシ サーバーです。 http リクエストに関連する設定である必要があります。http モジュールに関連するすべての設定は http { ... } 設定に配置されます。
コマンド |
コンテキスト |
構文 |
関数の説明 |
types |
http、server、location |
types { MIMEタイプファイルサフィックス }; |
Config;処理できるファイルの種類を確認してください。例: text/html html htm shtml; |
include |
any |
include file path; |
外部ファイルの内容を構成として nginx.conf ファイルにコピーします。例: include mime.type; 現在のディレクトリにある mime.type 設定ファイルを nginx 設定ファイルにコピーします。ファイル パスは相対パスまたは絶対パスにすることができます。ファイル名には、* を使用してワイルドカード文字を表すことができます。 |
default_type |
http、サーバー、場所 |
default_type MIME タイプ; |
ファイル名とサフィックスのマッピング関係。デフォルトの MIME タイプを設定します。 要求されたファイル タイプが type ディレクティブで見つからない場合は、default_type で指定されたタイプが使用されます。デフォルトはテキスト/プレーンタイプです。 |
access_log |
http、サーバー、場所、場所にある場合は、limit_例外 |
access_logパス[format [buffer=size] [gzip[=level]] [flush=time] [if=condition]]; access_log off; |
アクセス ログをオフまたは有効にします。デフォルト設定は次のとおりです: access_log logs/access.log combined で定義されたログ形式が、http モジュールのデフォルト形式である logs/access.log ファイルに書き込まれることを意味します。バッファーおよび gzip パラメーターのいずれかが定義されている場合、キャッシュがいっぱいになると、デフォルトでログが最初にキャッシュに書き込まれ、gzip 圧縮が有効になっている場合は、キャッシュ内のログが gzip によって圧縮されてファイルに書き込まれます。 、nginx モジュールのインストール時に gzip が追加されていることを確認する必要があります。キャッシュ サイズのデフォルトは 64K です。 gzip 圧縮レベルは 1 から 9 まで設定できます。レベルが高いほど、圧縮効率が向上し、ログ ファイルが占有するスペースは小さくなりますが、より高いシステム パフォーマンスが必要になります。デフォルト値は 1 です。 http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log |
log_format |
http |
log_format 形式名 ログ形式 |
でアクセスできる http アクセス ログの形式を定義します。ログ形式 httpモジュールの組み込み変数が存在する場合、ログとして出力されます。例: ddr 、requestなど。その他の変数については、http://nginx.org/en/docs/http/ngx_http_core_module.html#variablessendfileを参照してください。 http、サーバー、場所 (場所にある場合) sendfile オン | オフ カーネル コピー モードを有効にします。静的サーバーであると、最大 IO アクセス速度が向上します。従来のファイルの読み取りと書き込みのプロセスは次のとおりです: ハード ディスク>>> ユーザー バッファ>> sendfile を使用したファイルの読み取りと書き込みのプロセスは次のとおりです。ハードディスク >> カーネル バッファ (カーネルソケット バッファにすばやくコピー) >> プロトコル スタックでは、sendfile システム コールによってカーネル モードとユーザー モード間のスイッチとデータ コピーの数が減り、データが直接コピーされることがわかります。カーネル キャッシュからプロトコルまで、スタックにより効率が大幅に向上します。この記事で詳しく紹介します: http://xiaorui.cc/?p=1673tcp_nolayhttp,server,locationoff|on;tcp_nopushhttp,server , locationoff|on; |
tcp_nolay と tcp_nopush の 2 つのパラメータが一緒に使用され、これら 2 つの設定が有効になっている場合、データ パケットが特定のサイズに達した後にデータが送信されます。これにより、ネットワーク通信の数が減り、ブロックされる可能性が低くなりますが、応答の適時性にも影響します。ファイルのダウンロードなどのビッグデータ通信のシナリオに適しています。
|
keepalive_timeout |
http,server,location |
keepalive_time 65; |
クライアントがサーバーへの接続を確立するためのタイムアウト。指定された時間が経過すると、サーバーは切断されます。デフォルトは 75 秒です。各接続の生存時間を減らすと、応答する接続の数がある程度増加する可能性があるため、一般にこの値は適切に減らすことができます
|
gzip |
http、server、location、場所にある場合 |
gzip on | off; |
コンテンツ圧縮をオンにすると、クライアントのアクセス トラフィックとネットワーク帯域幅を効果的に削減できます
|
gzip_min_length |
http、server、location |
gzip_min_length length; |
単位は k で、デフォルトは 20k です。コンテンツが最小長を超える場合にのみ圧縮をオンにします。短すぎるコンテンツは適切に圧縮されず、圧縮プロセスによってシステム リソースも浪費されるためです。この圧縮された長さは、http 応答ヘッダーの Content-Length フィールドとしてクライアントに返されます。 推奨値: 1000
|
gzip_comp_level |
http、サーバー、場所 |
gzip_comp_level 1~9; |
圧縮レベル、デフォルト値は1です。範囲は 1 ~ 9 です。圧縮レベルが高いほど圧縮率も高くなりますが、システム パフォーマンス要件も高くなります。推奨値: 4
|
gzip_types |
http、server、location |
gzip_types mime-type…; |
圧縮コンテンツタイプ、デフォルトはtext/html;。一般的にはhtmlテキストのみを圧縮します。js、css、jsonなどの一般的なテキストデータを組み合わせることができます。例: text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
open_file_cache |
http、server、location |
open_file_cache off; max =N [inactive=time]; |
デフォルト値はオフです。キャッシュの最大数とキャッシュされたファイルの未使用期間を設定します。推奨値: max=655350 (worker_rlimit_nofile パラメータと一致) inactive=20s; |
open_file_ cache_min_uses |
http,server,location |
open_file_cache_min_usesnumber; |
デフォルトは 1、有効期間内のファイル使用の最小数期間。推奨値: 2 |
open_file _cache_valid |
http、サーバー、場所 |
open_file_cache_valid time; |
デフォルトは60秒、検証キャッシュの有効期間。 これは、キャッシュされたファイルを 60 秒ごとにチェックし、20 秒以内に 2 回以上使用されなかったファイルはキャッシュから削除されることを意味します。 lru アルゴリズムを使用します。 |
server |
server { … } |
http |
HTTPサーバーの仮想ホストを構成するために使用されるHTTPサーバーのコア構成、複数の |
listen |
listen ip[:port] | サーバー |
仮想ホストがリッスンする IP アドレスとポートを構成します。デフォルトでは、ローカル IP アドレスとポート 80 または 8000 をリッスンします。 IP のみが設定され、ポートが設定されていない場合は、デフォルトでポート 80 が使用されます。ポートのみが設定され、IP が設定されていない場合は、デフォルトでローカル IP が使用されます。詳細な設定については、http://nginx.org/en/docs/http/ngx_http_core_module.html#listen |
server_name |
server_name domain_name …; |
server |
仮想サーバーのドメイン名を設定します。 host では、スペースで区切って複数の を指定できます。デフォルトは空です |
charset |
http、server、locationの場合は |
charset charset | off; |
URLパラメータの文字化けの問題に関連するリクエストのエンコーディングを設定します。 |
location |
server, location |
location [ = | ~ | ~* | ^~ ] uri { … } location @name { … } |
client エンドリクエストサーバーの URL アドレスの一致ルール。複数の一致ルールを設定できます |
').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i ').text(i));
};
$numbering.fadeIn(1700);
});
});
上記では、Nginx のコア構成をその側面も含めて詳しく説明しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。
|