Nginx リバース プロキシはドメイン名を設定し、転送をエレガントに実装します
概要
Web 開発では、リクエストを転送するためにプロキシが必要な状況によく遭遇します。高性能 Web サーバーとして、Nginx はリバース プロキシ経由でリクエストを転送できるため、効率的な負荷分散と動的構成を実現できます。
Nginx リバース プロキシの基本原理は、クライアントからのリクエストを Nginx サーバーに送信し、その後 Nginx サーバーがそのリクエストを実際に処理するバックエンド サーバーに転送することです。ドメイン名を設定することで、異なるドメイン名からのリクエストに対して異なるプロキシ転送ルールを実装できます。
ドメイン名の設定
ドメイン名のプロキシ転送を実装するには、まずドメイン名解決を構成する必要があります。 www.example1.com と www.example2.com という、転送する必要がある 2 つのドメイン名があるとします。DNS サービス プロバイダーのコンソールで、これら 2 つのドメイン名を Nginx サーバーの IP アドレスに解決できます。
次に、Nginx 構成ファイルでドメイン名のプロキシ転送ルールを設定する必要があります。 Nginx 構成ファイル (通常は /etc/nginx/nginx.conf にあります) を開き、サーバー ブロックを見つけて、サーバー ブロックに対応するドメイン名と転送ルールを構成します。
サンプル コードは次のとおりです:
server { listen 80; server_name www.example1.com; location / { proxy_pass http://backend1; proxy_set_header Host $host; } } server { listen 80; server_name www.example2.com; location / { proxy_pass http://backend2; proxy_set_header Host $host; } }
上記のコードでは、最初にサーバー ブロックを定義し、ポート 80 をリッスンするように listen コマンドを設定し、server_name コマンドでドメイン名を設定します。 www.example1.com に送信します。 location ブロックの構成ディレクティブ proxy_pass は、リクエストの転送ターゲットが http://backend1 であることを指定します。 proxy_set_header ディレクティブは、リクエスト ヘッダーの Host フィールドを $host に設定します。これにより、リクエストの信頼性が維持されます。
同様に、別のサーバー ブロックを追加し、server_name を www.example2.com に、proxy_pass を http://backend2 に設定します。
転送ターゲットの構成
上記の構成では、backend1 と backend2 を転送ターゲットとして使用します。これら 2 つのターゲットは、バックエンド サーバーのアドレスを参照します。これは、ドメイン名、IP アドレス、または UNIX ドメイン ソケットです。
これら 2 つの転送ターゲットを実際にリクエストを処理するバックエンド サーバーに関連付けるには、Nginx 構成ファイルの http ブロック内にアップストリーム ブロックを追加する必要があります。サンプル コードは次のとおりです:
http { upstream backend1 { server backend1.example.com; } upstream backend2 { server backend2.example.com; } }
上記のコードでは、サーバー ディレクティブを通じてバックエンド サーバーのアドレスを backend1 および backend2 に関連付ける 2 つのアップストリーム ブロックを定義します。このうち、backend1.example.com と backend2.example.com は、実際にリクエストを処理するバックエンド サーバーのアドレスです。
Nginx の再起動
ドメイン名と転送先の構成が完了したら、構成を有効にするために Nginx サーバーを再起動する必要があります。ターミナルに次のコマンドを入力して再起動します。
sudo service nginx restart
その後、www.example1.com および www.example2.com にアクセスして、転送が正しく設定されているかどうかをテストできます。
概要
ドメイン名と転送ルールを設定することで、Nginx のリバース プロキシを実装し、リクエストをさまざまなバックエンド サーバーに転送できます。これにより、転送ルールを柔軟に構成し、効率的な負荷分散と動的構成を実現できます。同時に、Nginx はリバース プロキシの機能をさらに拡張し、より多くのニーズを満たすことができる豊富なモジュールと機能も提供します。
以上がNginx リバースプロキシはドメイン名を設定し、転送をエレガントに実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。