keepalive_timeout
http にはキープアライブ モードがあり、リクエストの処理後に TCP 接続を開いたままにするよう Web サーバーに指示します。クライアントから他のリクエストを受信した場合、サーバーは別の接続を確立せずに、この閉じられていない接続を使用します。
http キープアライブ、Web ページのすべてのリクエストは http (画像、CSS など) であり、http リクエストを開くには、まず TCP 接続を確立する必要があります。ページが必要な場合は、TCP 接続を確立する必要があります。リクエストごとにリクエストをオープンおよびクローズします。TCP 接続はリソースの無駄を引き起こします。keepalive_timeout は、HTTP リクエストが完了したときに TCP 接続が維持される時間です。この時点で別の HTTP リクエストがある場合、TCP 接続は継続されます。新しいリクエストがない場合は、TCP 接続を閉じる前に来てください
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; client_max_body_size 8192m; #gzip on; #include /etc/nginx/conf.d/*.conf; server { listen 80 so_keepalive=30m::; listen 443 default ssl; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/portalkey.key; #ssl_password_file /etc/nginx/ssl/ssl.pass; ssl_session_timeout 5m; ssl_protocols sslv2 sslv3 tlsv1; ssl_ciphers high:!anull:!md5; ssl_prefer_server_ciphers on; location / { proxy_request_buffering off; proxy_pass http://127.0.0.1:8011/; proxy_connect_timeout 180; proxy_send_timeout 180; proxy_read_timeout 180; send_timeout 180; } location /test1_url/ { proxy_pass http://127.0.0.1:8008/; proxy_connect_timeout 180; proxy_send_timeout 180; proxy_read_timeout 180; send_timeout 180; } location /test2_url/ { proxy_pass http://127.0.0.1:3000/; proxy_connect_timeout 180; proxy_send_timeout 180; proxy_read_timeout 180; send_timeout 180; } } }
# 設定セクション: http、デフォルト 75s
keepalive_timeout 60;
send_timeout: クライアントにデータを送信します。クライアント タイムアウト、デフォルトは 60 秒です。クライアントが連続 60 秒以内に 1 バイトも受信しない場合、接続は閉じられます。
proxy_connect_timeout: 間の接続タイムアウト。 nginx とアップストリーム サーバー
proxy_read_timeout: nginx はアップストリーム サーバー データのタイムアウトを受信します。デフォルトは 60 秒です。連続 60 秒以内に 1 バイトを受信しない場合、接続は閉じられます
proxy_send_timeout: nginx はアップストリーム サーバーにデータのタイムアウトを送信します。デフォルトは 60 秒です。連続 60 秒以内に 1 バイトが送信されない場合、接続は閉じられます
so_timeout:
ユーザーとサーバーが TCP 接続を有効にすると --> この接続には長期間トラフィックがありません (so_keepalive タイムアウト) --> サーバーは、ユーザーがまだ存在するかどうかを確認するために検出パケットを送信します -- > 検出パケットが返されない場合は、TCP 接続を閉じます
so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]
so_keepalive=30m::10 will set the idle timeout (tcp_keepidle) to 30 minutes, leave the probe interval (tcp_keepintvl) at its system default, and set the probes count (tcp_keepcnt) to 10 probes.
上記 3 つのパラメータのうち 1 つだけを使用でき、so_keepalive=on、so_keepalive=off などを同時に使用することはできませんまたは so_keepalive=30s:: (検出パケットを送信するためにデータ パケットがない状態で 30 秒間待機することを意味します)
以上がNginx タイムアウトのタイムアウトを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。