Nginx ネットワーク接続設定項目は次のとおりです: 1. HTTP ヘッダー読み取りのタイムアウト; 2. HTTP パケット本体読み取りのタイムアウト; 3. 応答送信のタイムアウト; 4. タイムアウト接続オプションのリセット。
Nginx ネットワーク接続設定項目は次のとおりです:
1. HTTP ヘッダー読み取りのタイムアウト
構文:
client_header_timeout time(默认单位:秒);
デフォルト:
client_header_timeout 60;
構成ブロック: http,server,location
クライアントがサーバーとの接続を確立した後に開始されます。 HTTP ヘッダー。このプロセス中に、一定時間 (タイムアウト時間) 以内にクライアントからバイトが読み取られない場合、タイムアウトとみなされ、408 (「リクエストがタイムアウトしました」) 応答がクライアントに返されます。
推奨チュートリアル: nginx クイック スタート チュートリアル
2. HTTP パケット本文の読み取りタイムアウト
構文:
client_body_timeout time(默认单位:秒);
デフォルト:
client_body_timeout 60;
構成ブロック: http、server、location
この構成項目は client_header_timeout と似ていますが、このタイムアウトが読み取り専用である点が異なります。 HTTP パケット本体のみ。
3. 応答送信のタイムアウト
構文:
send_timeout time;
デフォルト:
send_timeout 60;
設定ブロック: http、server、location
このタイムアウトは、応答送信のタイムアウトです。つまり、Nginx サーバーがクライアントにデータ パケットを送信しましたが、クライアントはデータ パケットを受信しませんでした。接続が send_timeout で定義されたタイムアウトを超えると、Nginx は接続を閉じます。
4. タイムアウト接続オプションのリセット
構文:
reset_timeout_connection on | off;
デフォルト:
reset_timeout_connection off;
設定ブロック: http、server、location
接続がタイムアウトすると、RST パケットをクライアントに送信することで接続が直接リセットされます。このオプションをオンにすると、Nginx は特定の接続がタイムアウトになった後に通常の 4 ウェイ ハンドシェイクを使用せずに TCP 接続を閉じ、代わりに RST リセット パケットをユーザーに直接送信し、ユーザーの応答を待たなくなります。このソケットで使用されるすべてのキャッシュ (TCP スライディング ウィンドウなど) に関して、Nginx サーバーを直接解放します。通常のシャットダウン方法と比較して、サーバーは FIN_WAIT_1、FIN_WAIT_2、および TIME_WAIT 状態で多数の TCP 接続を生成することを回避できます。
RST リセット パッケージを使用して接続を閉じると、いくつかの問題が発生し、デフォルトでは有効にならないことに注意してください。
5, lingering_close
構文:
lingering_close off | on | always;
デフォルト:
lingering_close on;
構成ブロック: http、サーバー、場所
この構成は、Nginx がユーザー接続を閉じる方法を制御します。 「常に」は、ユーザー接続を閉じる前に、接続上のすべてのユーザーによって送信されたデータを無条件に処理する必要があることを意味します。 off は、接続を閉じるときに、接続上にユーザーからの準備ができたデータがあるかどうかを気にしないことを意味します。通常の状況では、接続上でユーザーが送信したデータは、企業がそれ以降のデータが不要であると判断した場合を除き、接続を閉じる前に処理されます。
6, lingering_time
構文:
lingering_time time;
デフォルト:
lingering_time 30s;
構成ブロック: http、サーバー、場所
lingering_close が有効な場合、この構成アイテムは大きなファイルをアップロードするのに役立ちます。前述したように、ユーザーがリクエストした Content-Length が max_client_body_size 設定より大きい場合、Nginx サービスはユーザーに 413 (リクエスト エンティティが大きすぎます) 応答をすぐに送信します。ただし、多くのクライアントは 413 戻り値に関係なく HTTP 本文のアップロードを続行する可能性があり、このとき、lingering_time 設定が経過すると、ユーザーがまだアップロードしているかどうかに関係なく、Nginx は接続を閉じます。
7, lingering_timeout
構文:
lingering_timeout time;
デフォルト:
lingering_timeout 5s;
構成ブロック: http、サーバー、場所
lingering_close が有効になった後、接続を閉じる前に、ユーザーによって送信されたデータがサーバーに到達したかどうかが検出されます。lingering_timeout 後に読み取るデータがない場合、接続は直接閉じられます。それ以外の場合は、接続バッファ内のデータがフェッチされて破棄されるまで、接続は閉じられません。
8. 一部のブラウザのキープアライブ機能を無効にする
構文:
keepalive_disable [ msie6 | safari | none ]...
デフォルト:
keepalive_disable msie6 safari
設定ブロック: http、server、location
HTTP リクエストのキープアライブ機能は、複数のリクエストに対して長い HTTP 接続を再利用することで、サーバーのパフォーマンスを向上させるのに非常に役立ちます。ただし、IE 6 や Safari などの一部のブラウザでは、キープアライブ機能を使用した POST リクエストの処理に機能上の問題があります。したがって、IE 6 およびその以前のバージョンでは、Safari ブラウザーのキープアライブ機能はデフォルトで無効になっています。
8, keepalive
タイムアウト時間
構文:
keepalive_timeout time(默认单位:秒);
デフォルト:
keepalive_timeout 75;
構成ブロック: http, サーバー、location
キープアライブ接続が一定時間 (デフォルトは 75 秒) アイドル状態になった後、サーバーとブラウザーの両方が接続を閉じます。もちろん、keepalive_timeout 設定項目は Nginx サーバーを制約するために使用され、仕様に従って Nginx もこの時間をブラウザーに渡しますが、ブラウザーごとにキープアライブの処理方法が異なる場合があります。
10. keepalive
長い接続で送信できるリクエストの最大数
構文:
keepalive_requests n;
デフォルト:
keepalive_requests 100;
配置块:http、server、location
一个keepalive连接上默认最多只能发送100个请求。
11、 tcp_nodelay
语法:
tcp_nodelay on | off;
默认:
tcp_nodelay on;
配置块:http、server、location
确定对keepalive连接是否使用TCP_NODELAY选项。
<span style="font-family:Microsoft Yahei, Hiragino Sans GB, Helvetica, Helvetica Neue, 微软雅黑, Tahoma, Arial, sans-serif">12、</span>tcp_nopush
语法:
tcp_nopush on | off;
默认:
tcp_nopush off;
配置块:http、server、location
在打开sendfile选项时,确定是否开启FreeBSD系统上的TCP_NOPUSH
或Linux系统上的TCP_CORK功能。打开tcp_nopush后,将会在发送响应时把整个响应包头放到一个TCP包中发送。
以上がNginxのネットワーク接続設定項目とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。