検索
ホームページ運用・保守NginxNginxリバースプロキシサーバーの接続制限とリクエストキューの調整方法

Nginxリバースプロキシサーバーの接続制限とリクエストキューの調整方法

Aug 08, 2023 am 10:37 AM
nginxリバースプロキシ接続制限リクエストキューのチューニング

Nginxリバースプロキシサーバーの接続制限とリクエストキューの調整方法

Nginx リバース プロキシ サーバーの接続制限とリクエスト キューの調整方法

高同時実行ネットワーク アプリケーションを実行する場合、Nginx リバース プロキシ サーバーは非常に一般的で信頼性の高いオプションです。ただし、接続制限とリクエスト キューが適切に構成されていない場合、サーバーでパフォーマンスのボトルネックやサービス拒否の問題が発生する可能性があります。この記事では、Nginxを使用して接続数を制限し、リクエストキューを最適化する方法を紹介します。

接続数を制限する

Nginx は、worker_connections パラメーターを設定することで接続数を制限できます。このパラメータは、各ワーカー プロセスが同時に処理できる接続の最大数を指定します。接続数がこの制限に達すると、新しい接続は拒否されます。

Nginx 構成ファイルを開き、http ブロックを見つけて、次の行を追加または変更します:

http {
  ...
  worker_processes  auto;
  worker_connections  1024;
  ...
}

上記の例では、worker_connections が 1024 に設定されています。これは、各ワーカー プロセスが 1024 を処理できることを意味します。同時に接続します。サーバーのハードウェアのパフォーマンスとアプリケーションの要件に応じて、実際の条件に基づいて調整できます。サーバー リソースを最大限に活用するには、worker_processes の値を CPU コアの数の倍数に設定する必要があることに注意してください。

リクエスト キューのチューニング

同時接続数がworker_connectionsの制限を超えると、Nginxはリクエストを処理待ちのキューに入れます。リクエストキューの長さとタイムアウトを調整して、サービス拒否の可能性を最小限に抑えることができます。

Nginx 構成ファイルの編集を続けて、次の行を追加または変更します。

http {
  ...
  events {
    accept_mutex off;
    worker_connections  1024;
    worker_processes  auto;
    multi_accept on;
    use epoll;
    ...
  }
  ...
  server {
    ...
    location / {
      proxy_pass http://backend;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_http_version  1.1;
      proxy_set_header        Upgrade $http_upgrade;
      proxy_set_header        Connection "upgrade";
      proxy_read_timeout      600s;
      proxy_connect_timeout   600s;
      proxy_send_timeout      600s;
      proxy_buffer_size       128k;
      proxy_buffers           4 256k;
      proxy_busy_buffers_size 256k;
      proxy_buffering         on;
      ...
    }
    ...
  }
}

上の例では、リクエスト キューにいくつかの調整を加えました。まず、accept_mutex を off に設定することで、ミューテックスを無効にして、複数のワーカー プロセスが同時に新しい接続を受け入れることができるようにします。次に、Nginx がキュー内のすべてのリクエストをできるだけ早く処理できるように、multi_accept を on に設定します。最後に、実際のニーズに応じてタイムアウトとバッファ サイズを設定します。

コード例

以下は、バックエンド アプリケーションをシミュレートする、単純な Node.js サーバーの例です。

const http = require('http');

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, World!
');
});

server.listen(3000, 'localhost', () => {
  console.log('Server running at http://localhost:3000/');
});

上の例では、ローカル ポート 3000 をリッスンする単純な HTTP サーバーを作成しました。このサーバーはデモンストレーションのみを目的としているため、単純な「Hello, World!」文字列のみを返します。

Nginx をリバース プロキシ サーバーとして使用するには、上記のサンプル コードを server.js という名前のファイルとして保存し、次のコマンドを実行してサーバーを起動する必要があります:

node server.js

次に、次の Nginx 構成を nginx.conf という名前のファイルに保存します。

http {
  ...
  server {
    listen 80;
    location / {
      proxy_pass http://localhost:3000;
    }
  }
}

次のコマンドを実行して Nginx を起動します。

nginx -c /path/to/nginx.conf

これで、次のことが可能になります。 http://localhost にアクセスしてアプリケーションにアクセスします。すべてのリクエストは Nginx サーバーを通じてプロキシ処理され、負荷分散されます。

概要

接続数を制限し、要求キューを調整することで、同時実行性の高いネットワーク アプリケーションをより適切に管理できます。上記では、Nginx を使用して接続数を制限し、リクエスト キューを最適化する方法を説明し、簡単な Node.js サーバー コード例を示しています。実際のニーズとサーバーのハードウェア パフォーマンスに基づいて、適切な構成を調整してください。

以上がNginxリバースプロキシサーバーの接続制限とリクエストキューの調整方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
nginxとapacheを選択する:あなたのニーズに合った適切nginxとapacheを選択する:あなたのニーズに合った適切Apr 15, 2025 am 12:04 AM

NginxとApacheには独自の利点と短所があり、さまざまなシナリオに適しています。 1.Nginxは、高い並行性と低リソース消費シナリオに適しています。 2。Apacheは、複雑な構成とリッチモジュールが必要なシナリオに適しています。コア機能、パフォーマンスの違い、ベストプラクティスを比較することで、ニーズに最適なサーバーソフトウェアを選択するのに役立ちます。

nginxを開始する方法nginxを開始する方法Apr 14, 2025 pm 01:06 PM

質問:nginxを開始する方法は?回答:nginxスタートアップnginx検証nginxはnginxを開始しました他のスタートアップオプションを自動的に開始

Nginxが開始されるかどうかを確認する方法Nginxが開始されるかどうかを確認する方法Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

nginxを閉じる方法nginxを閉じる方法Apr 14, 2025 pm 01:00 PM

NGINXサービスをシャットダウンするには、次の手順に従ってください。インストールタイプを決定します:Red Hat/Centos(SystemCtl Status Nginx)またはDebian/Ubuntu(Service Nginx Status)サービスを停止します:Red Hat/Centos(SystemCtl Stop Nginx)またはDebian/Ubuntu(Service Nginx Stop)無効自動起動(オプション):Debuntos/Centos/Centos/Centos/Centos/Centos (syst

Windowsでnginxを構成する方法Windowsでnginxを構成する方法Apr 14, 2025 pm 12:57 PM

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

nginx403エラーを解く方法nginx403エラーを解く方法Apr 14, 2025 pm 12:54 PM

サーバーには、要求されたリソースにアクセスする許可がなく、NGINX 403エラーが発生します。ソリューションには以下が含まれます。ファイル許可を確認します。 .htaccess構成を確認してください。 nginx構成を確認してください。 SELINUXアクセス許可を構成します。ファイアウォールルールを確認してください。ブラウザの問題、サーバーの障害、その他の可能なエラーなど、他の原因をトラブルシューティングします。

Linuxでnginxを開始する方法Linuxでnginxを開始する方法Apr 14, 2025 pm 12:51 PM

Linuxでnginxを開始する手順:nginxがインストールされているかどうかを確認します。 systemctlを使用して、nginxを開始してnginxサービスを開始します。 SystemCTLを使用して、NGINXがシステムスタートアップでNGINXの自動起動を有効にすることができます。 SystemCTLステータスNGINXを使用して、スタートアップが成功していることを確認します。 Webブラウザのhttp:// localhostにアクセスして、デフォルトのウェルカムページを表示します。

Nginxが起動されているかどうかを確認する方法は?Nginxが起動されているかどうかを確認する方法は?Apr 14, 2025 pm 12:48 PM

Linuxでは、次のコマンドを使用して、nginxが起動されるかどうかを確認します。SystemCTLステータスNGINXコマンド出力に基づいて、「アクティブ:アクティブ(実行)」が表示された場合、NGINXが開始されます。 「アクティブ:非アクティブ(dead)」が表示されると、nginxが停止します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール