基本概念
nginx の最も一般的な用途は、リバース プロキシ サービスを提供することです。では、リバース プロキシとは何でしょうか?この魔法の国では、本土の多くの同胞がフォワード プロキシを使用したことがあると思いますが、その原理は大まかに次のとおりです:
プロキシ サーバーは、クライアント側の仲介者としてリクエストを受け取ります。 、実際のクライアントを非表示にし、サーバーからリソースを取得します。プロキシ サーバーが万里の長城の外にある場合、万里の長城を越えるという目的を達成するのにも役立ちます。リバースプロキシとはその名のとおり、プロキシサーバーを逆にサーバーの仲介として利用し、実際にサービスを提供するサーバーを隠蔽するもので、原理は大まかに以下のとおりです。もちろんこれは万里の長城を迂回するためではなく、セキュリティや負荷分散などの一連の機能を実現するために行われます。いわゆるセキュリティとは、クライアントのリクエストがイントラネット サーバーに直接送信されるのではなく、プロキシを介して転送されることを意味し、この層ではセキュリティ フィルタリング、フロー制御、DDoS 防止などの一連の戦略を実装できます。負荷分散とは、バックエンドで実際にサービスを提供するサーバーの数を水平方向に拡張し、エージェントがルールに従ってリクエストを各サーバーに転送することで、各サーバーの負荷がほぼ均衡するようにすることを意味します。
そして、nginx は非常に人気のあるリバース プロキシ サービスです。
コードをコピーします。コードは次のとおりです。
sudo apt-get install nginx
コードをコピーします。 コードは次のとおりです。
sudo service nginx start
初期設定
nginx のデフォルト設定ファイルは、にあります。コードをコピーします。コードは次のとおりです。
/etc/nginx /nginx.conf
コードをコピーします コードは次のとおりです:
include /etc/nginx/sites-enabled/*;
server {
server_name localhost;listen 80default_server;
listen [::]:80default_server ipv6only=on;
root /usr/share/nginx/html;
indexindex.htmlindex.htm;
location/ {
}
}
大規模な Web サイトには通常、多くの下位サイトがあり、それぞれに対応するサービスを提供する独自のサーバーがあります。これらの異なるサービス構成は、上記の構成におけるサーバーの意味である仮想ホストと呼ばれる概念を通じて分離できます。たとえば、Google には翻訳とアカデミックの 2 つの製品があります。nginx 構成ファイルで 2 つのサーバーを構成できます。サーバー名はそれぞれ、translate.google.com とAcademic.google.com です。このようにして、異なる URL リクエストが対応します。 nginx の対応する設定に転送し、別のバックエンド サーバーに転送します。ここでのサーバー名は、クライアントの http リクエストのホスト行と一致します。
この例では、server_name は localhost であるため、ブラウザーで localhost を介してページ設定にアクセスできます。次の 2 つの listen は、それぞれ ipv4 および ipv6 の listen ポートに対応します。8080 に設定すると、localhost:8080 経由でのみデフォルト ページにアクセスできます。
ここでは、/ に一致する場所、つまりローカルホストの /xxx または /yyy で始まるすべてのリクエストは、次の構成を通過する必要があります。この単純かつ大雑把な一致に加えて、nginx は通常の完全な等価性やその他の細かい一致もサポートしています。マッチング方法。また、tryfiles は、nginx が次の順序でファイルにアクセスし、最初に一致したファイルを返すことを意味します。たとえば、localhost/test をリクエストすると、/test ファイルが検索され、見つからない場合は /test/ が検索され、見つからない場合は 404 が返されます。さらに、ロケーション設定で proxypass を使用してリバース プロキシと負荷分散を実装することもできますが、この最も単純な設定には
が含まれていません。ここで、root はローカル フォルダをすべての URL リクエスト パスのルートとして参照します。たとえば、ユーザーが localhost/test をリクエストした場合、nginx は /usr/share/nginx/html フォルダーでテスト ファイルを検索して返します。
index はデフォルトのアクセスページで、localhost にアクセスすると、ルートファイルパスにあるindex.htmlとindex.htmを順に自動的に検索し、最初に見つかった結果を返します。
場所高度な構成
上記の構成は、ユーザーの URL をローカル ファイルにマップするだけであり、伝説的なリバース プロキシと負荷分散は実装しません (もちろん、nginx は静的ディストリビューションを実行します)。ファイルの数も非常に印象的です)、さらに場所を設定して、それを実現する方法を見てみましょう。
設定は非常に簡単です。たとえば、実際にサービスを提供するマシンのポート 8080 にすべてのリクエストを転送したい場合は、次のようにするだけです:
コードをコピーします。コードは次のとおりです。
location / {
proxy_pass 123.34.56.67:8080;
}
このようにして、すべてのリクエストは 123.34.56.67 へのリバース プロキシになります。このようにして、リバース プロキシ機能が実装されましたが、サーバーにプロキシできる場合、どのように負荷分散を行うことができるでしょうか?これには、nginx のアップストリーム モジュールが必要です。
コードをコピーします。コードは次のとおりです:
アップストリーム バックエンド {
ip_hash;
サーバー バックエンド 1.example.com;
サーバー バックエンド 2。 example.com ;
サーバー backend3.example.com;
サーバー backend4.example.com;
}
location / {
proxy_pass http://backend;
}
上流のマシンのグループを指定し、このグループに backend という名前を付けました。このように、proxypass では、リクエストが上流のバックエンドに転送される限り、リバース プロキシと 4 台の負荷分散を実現できます。機械。 iphash は、ユーザーの IP アドレスに従って割り当てを行うバランスのとれた方法であることを示します。
設定を有効にするには、nginx を再起動する必要はなく、設定をリロードするだけで済みます。
コードをコピーします。コードは次のとおりです。
sudo service nginx reload
以上がNginxの初期設定方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

NginxとApacheの主なアーキテクチャの違いは、Nginxがイベント駆動型の非同期非ブロッキングモデルを採用し、Apacheはプロセスまたはスレッドモデルを使用することです。 1)nginxは、静的な内容と逆プロキシに適したイベントループとI/O多重化メカニズムを介して、高電流接続を効率的に処理します。 2)Apacheは、非常に安定しているがリソース消費量が高いマルチプロセスまたはマルチスレッドモデルを採用しており、リッチモジュールの拡張が必要なシナリオに適しています。

Nginxは、高い同時コンテンツと静的コンテンツの処理に適していますが、Apacheは複雑な構成と動的コンテンツに適しています。 1。NGINXは、交通量の多いシナリオに適した同時接続を効率的に処理しますが、動的コンテンツを処理するときは追加の構成が必要です。 2。Apacheは、複雑なニーズに適したリッチモジュールと柔軟な構成を提供しますが、並行性のパフォーマンスが低いです。

NginxとApacheにはそれぞれ独自の利点と欠点があり、選択は特定のニーズに基づいている必要があります。 1.Nginxは、非同期の非ブロッキングアーキテクチャのため、高い並行性シナリオに適しています。 2。Apacheは、モジュラー設計のため、複雑な構成を必要とする低変動シナリオに適しています。

Nginxunitは、複数のプログラミング言語をサポートし、動的構成、ゼロダウンタイム更新、組み込みのロードバランシングなどの機能を提供するオープンソースアプリケーションサーバーです。 1。動的構成:再起動せずに構成を変更できます。 2。多言語サポート:Python、Go、Java、PHPなどと互換性があります。 4。ビルトインロードバランシング:リクエストは、複数のアプリケーションインスタンスに配布できます。

nginxunitは、多言語プロジェクトや動的な構成要件に適した、apachetomcat、gunicorn、node.jsビルトインHTTPサーバーよりも優れています。 1)複数のプログラミング言語をサポートします。2)動的な構成リロード、3)高いスケーラビリティと信頼性を必要とするプロジェクトに適した組み込みの負荷分散機能を提供します。

Nginxunitは、モジュラーアーキテクチャと動的な再構成機能により、アプリケーションのパフォーマンスと管理性を向上させます。 1)モジュラー設計には、マスタープロセス、ルーター、アプリケーションプロセスが含まれ、効率的な管理と拡張をサポートします。 2)動的再構成により、CI/CD環境に適した、実行時に構成をシームレスに更新できます。 3)多言語サポートは、言語ランタイムの動的なロードを通じて実装され、開発の柔軟性が向上します。 4)イベント駆動型モデルと非同期I/Oによって高性能が達成され、高い並行性の下でも効率的なままです。 5)申請プロセスを分離し、アプリケーション間の相互の影響を減らすことにより、セキュリティが改善されます。

nginxunitを使用して、アプリケーションを複数の言語で展開および管理できます。 1)nginxunitをインストールします。 2)PythonやPHPなどのさまざまなタイプのアプリケーションを実行するように構成します。 3)アプリケーション管理に動的構成関数を使用します。これらの手順を通じて、アプリケーションを効率的に展開および管理し、プロジェクトの効率を向上させることができます。

NGINXは、高い並行接続の処理に適していますが、Apacheは複雑な構成とモジュール拡張が必要なシナリオにより適しています。 1.Nginxは、高性能と低リソース消費で知られており、高い並行性に適しています。 2. Apacheは、その安定性とリッチモジュール拡張機能で知られています。これは、複雑な構成ニーズに適しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

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

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ホットトピック









