Nginx タイムアウトのタイムアウトを設定する方法

PHPz
リリース: 2023-05-12 22:07:13
転載
2323 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート