Nginx HTTP リクエスト フィルタリングとリバース プロキシ パフォーマンス分析
Nginx は、業界で広く使用されている HTTP サーバーおよびリバース プロキシ サーバーであり、そのシンプルな設計、優れたパフォーマンス、その他の利点により、大規模なサーバーとなっています。 Web アプリケーションの数、クラウド システムおよびモバイル アプリケーションの優先サーバー。実際のアプリケーションでは、Nginx は HTTP リクエストの処理と応答を担当するだけでなく、HTTP リクエストのフィルタリングやリバース プロキシも実行します。この記事では、Nginx の HTTP リクエスト フィルタリングとリバース プロキシの実装を分析し、パフォーマンス テストと分析を実行します。
- HTTP リクエスト フィルタリングの実装
Nginx は、正規表現に基づいた HTTP リクエスト フィルタリング モジュールを提供します。これは、修飾された HTTP リクエストをインターセプトして、悪意のあるリクエストのフィルタリングや保護を防ぐことができます。指定されたリソースの。次のコードを Nginx 構成ファイルに追加して、HTTP リクエスト フィルタリングを有効にします。
http { server { location / { if ($http_user_agent ~* Firefox) { return 403; } ... } } }
上記のコードでは、$http_user_agent は Nginx の組み込み変数であり、HTTP リクエスト ヘッダーの User-Agent フィールドを表します。 、~* は正規表現を表し、Firefox の文字列が一致した場合は 403 エラーが返されます。このようにして、1 つ以上のタイプのリクエストをフィルタリングできます。
Nginx の HTTP リクエスト フィルタリング モジュールは、HTTP リクエストの複雑なフィルタリングを実装するために使用できる $http_referer、$request_method、$remote_addr などの他のタイプの変数や命令も提供します。ドキュメントの理解が深まります。
- リバース プロキシの実装
Nginx のリバース プロキシ機能は、クライアント リクエスト プロキシをバックエンド アプリケーション サーバーに転送し、さらにバックエンド アプリケーション サーバーに転送できます。 Nginx は負荷分散を実現し、パフォーマンスを向上させるために結果をクライアントに返します。
次は、単純なリバース プロキシ構成です:
http { upstream myapp { server 127.0.0.1:8080; server 127.0.0.1:8081; } server { listen 80; location / { proxy_pass http://myapp; } } }
上記の構成では、myapp という名前のアップストリームを定義し、それぞれ 8080 とポート 8081 をリッスンする 2 つのバックエンド サーバーを指定しました。サーバー ブロックでは、ポート 80 をリッスンし、location / を設定し、proxy_pass ディレクティブを通じてリクエストを myapp に転送します。myapp プロキシはそれをバックエンド サーバーに転送します。
Nginx のリバース プロキシは、負荷分散アルゴリズム、エラー処理、セッション固定性などの高度な戦略も提供します。読者は関連ドキュメントを参照して詳細を学ぶことができます。
- パフォーマンス テストと分析
上記の分析を通じて、Nginx の HTTP リクエスト フィルタリングとリバース プロキシ機能が非常に強力であることがわかりますが、実際のアプリケーションではまだ機能が不十分です。その性能に注目する必要がある。 Nginx のパフォーマンスをテストするために、テスト用の ApacheBench (ab) ツールを使用し、Ubuntu 20.04 サーバーで実験を実施しました。
最初は HTTP リクエスト フィルタリングのテストです。リクエスト ヘッダーの User-Agent フィールドを「Mozilla/5.0」に設定し、1000 リクエストを Nginx サーバーに送信します。結果 Nginx が 1 秒あたり 22.33 リクエストを処理でき、各リクエストの平均時間は 44.76 ミリ秒で、リクエストの 90% が 54 ミリ秒以内に完了することがわかります。
ab -n 1000 -H "User-Agent: Mozilla/5.0" http://localhost/
次は、リバース プロキシ テストです。実際のアプリケーションをシミュレートするために、単純なバックエンド サーバーが使用されます。各リクエストの処理時間は 10 ミリ秒で、リクエストは同時に 2 つのバックエンド サーバーに開始されます:
Concurrency Level: 1 Time taken for tests: 44.780 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 159000 bytes HTML transferred: 0 bytes Requests per second: 22.33 [#/sec] (mean) Time per request: 44.780 [ms] (mean) Time per request: 44.780 [ms] (mean, across all concurrent requests) Transfer rate: 3.47 [Kbytes/sec] received
http { upstream myapp { server 127.0.0.1:8080; server 127.0.0.1:8081; } server { listen 80; location / { proxy_pass http://myapp; } } }
テスト結果は、Nginx が 1 秒あたり 966.41 リクエストを処理できることを示しています、およびそれぞれ リクエストの平均時間は 1.03 ミリ秒で、リクエストの 90% は 2 ミリ秒以内に完了します:
ab -n 1000 http://localhost/
テスト結果から、Nginx がインターセプトおよび転送する非常に強力な能力を備えていることがわかります。 HTTP リクエストを処理し、大量のリクエストを処理し、高いパフォーマンスを維持できます。ただし、Nginx のパフォーマンスは、サーバーのハードウェア能力、オペレーティング システムのパラメーター、Nginx の構成などの要因によっても制限されるため、実際のアプリケーションでは、実際の条件に応じて調整および最適化する必要があります。
結論
この記事では、Nginx の HTTP リクエスト フィルタリングとリバース プロキシ機能を分析し、その実装とパフォーマンスを紹介し、簡単なテストと分析を行います。一般的に使用される HTTP サーバーおよびリバース プロキシ サーバーとして、Nginx は強力な Web サービス機能を提供します。読者は、実際のニーズや環境に応じてさまざまな Nginx モジュールとパラメーターを選択および構成して、最高のパフォーマンスと効果を実現できます。
以上がNginx HTTP リクエスト フィルタリングとリバース プロキシ パフォーマンス分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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

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

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
