最近、プロジェクトで nginx を使用し、バックエンドで Java を使用しました。バックエンドで 1 つのリクエストを処理するのに 1 分以上かかり、リクエストのステータス コードが 504 ゲートウェイ タイムアウトであることがわかりました。 次のように、nginx のタイムアウト関連のすべての構成を理解します。 キープアライブタイムアウト HTTP には KeepAlive モードがあり、リクエストの処理後に TCP 接続を開いたままにするように Web サーバーに指示します。クライアントから他のリクエストを受信した場合、サーバーは別の接続を確立せずに、この閉じられていない接続を使用します。 http キープアライブでは、Web ページのすべてのリクエストは HTTP (画像、CSS など) であり、HTTP リクエストを開くには、最初に TCP 接続を確立する必要があります。ページがリクエストごとに TCP 接続を開いたり閉じたりする必要がある場合、リソースの無駄になります。keepalive_timeout は、HTTP リクエストが完了したときに TCP 接続が維持される時間です。この時点で別の HTTP リクエストが来ると、TCP 接続が再利用されます。新しいリクエストがない場合、TCP 接続は閉じられます。 ユーザー nginx; ワーカープロセス 1; error_log /var/log/nginx/error.log 警告; pid /var/run/nginx.pid; イベント { ワーカー接続 1024; } http { /etc/nginx/mime.types を含めます。 デフォルトタイプ アプリケーション/オクテットストリーム; 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 メイン; ファイル送信オン; tcp_nopush オン; tcp_nodelay オン; キープアライブタイムアウト65; クライアントの最大ボディサイズ 8192m; #gzip オン; /etc/nginx/conf.d/*.conf を #include します。 サーバー{ 80 をリッスンします so_keepalive=30m::; listen 443 デフォルト 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 5分; ssl_プロトコル SSLv2 SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers をオン; 位置 / { proxy_request_buffering をオフ; プロキシパス http://127.0.0.1:8011/; プロキシ接続タイムアウト 180; プロキシ送信タイムアウト 180; プロキシ読み取りタイムアウト 180; 送信タイムアウト 180; } 場所 /test1_url/ { プロキシパス http://127.0.0.1:8008/; プロキシ接続タイムアウト 180; プロキシ送信タイムアウト 180; プロキシ読み取りタイムアウト 180; 送信タイムアウト 180; } 場所 /test2_url/ { プロキシパス http://127.0.0.1:3000/; プロキシ接続タイムアウト 180; プロキシ送信タイムアウト 180; プロキシ読み取りタイムアウト 180; 送信タイムアウト 180; } } } # 設定セクション: http、デフォルト 75 秒 キープアライブタイムアウト60;
so_タイムアウト: ユーザーがサーバーとの TCP 接続を開くと --> この接続に長時間トラフィックがない (so_keepalive タイムアウト) --> サーバーはユーザーがまだ生きているかどうかを確認するためにプローブ パケットを送信します --> プローブ パケットに応答がない場合、TCP 接続は閉じられます so_keepalive=オン|オフ|[keepidle]:[keepintvl]:[keepcnt] so_keepalive=30分::10 アイドル タイムアウト (TCP_KEEPIDLE) を 30 分に設定し、プローブ間隔 (TCP_KEEPINTVL) をシステムのデフォルトのままにして、プローブ数 (TCP_KEEPCNT) を 10 プローブに設定します。 上記の 3 つのパラメータのうち 1 つだけを使用できます。so_keepalive=on、so_keepalive=off、so_keepalive=30s:: (検出パケットを送信する前にデータ パケットがない状態で 30 秒間待機することを意味します) など、同時に使用することはできません。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: MySql8.0以降のバージョンでROOTパスワードを正しく変更する方法
問題を見つけるコンテンツをリストで表示すると、リスト内のコンテンツの数は多いかもしれませんが、ユーザ...
現在、このような要件があります。ログインした人がカスタマー サービス担当者である場合、注文は「このカ...
MySQLで重複データを削除する詳細な例重複レコードには 2 つの意味があります。1 つは完全に重複...
カスケードとカスケードレベルHTML 要素は 3 次元の概念です。水平方向と垂直方向に加えて、「Z ...
フローティングの基礎標準ドキュメント フローでは、要素は塊級元素と行內元素の 2 種類に分けられます...
目次1. JavaScriptについて2. JavaScript イベントループ3. マクロタスクと...
目次新しい HTML ファイルを作成します。初期テンプレートを作成するHTML の追加CSS パディ...
序文この記事は主に、MySQL で浮動小数点型を文字型に変換するときに発生する問題を紹介します。これ...
目次1. 冷蔵庫に入りきらない象2. シャドウクローン文字列3. 実際に見た「奇妙なボール」 4. ...
目次このシリーズの背景概要PostgreSQL データベースの準備ソースからインストール仮想環境の作...
js 配列はどこでも使用されているため、おそらく誰もがよく知っているでしょうが、配列クラス (疑似配...
新しく作成された Web サイトの場合は、ASP.NET MVC5 を例に挙げます。セッションを処理...
先週末、兄弟プロジェクトはより良いサービスを提供するためにサーバーを拡張する準備をしていました。兄弟...
1. KVM の概要カーネルベースの仮想マシンの略称は、Linux 2.6.20 以降のすべての主要...
序文テストを行う際、大量のデータによる負荷に耐えるプロジェクトの能力をテストするために、通常はテスト...