ホームページ > 運用・保守 > Nginx > nginxマルチドメイン転送を実装する方法

nginxマルチドメイン転送を実装する方法

WBOY
リリース: 2023-05-13 12:58:20
転載
2208 人が閲覧しました

基本概念

DNS

DNS は Domain Name System の略で、ドメイン ネーム システムです。 DNS はインターネット上のサービスで、一般にドメイン名サービスまたはドメイン名解決サービスと呼ばれ、主に Web サイトのドメイン名と IP アドレスを変換するサービスを提供します。

ドメイン名と IP の対応

#ドメイン名と IP アドレスは 1 対 1 で対応しますが、同じ IP に複数のドメイン名が対応する場合があります。住所。人の名前と ID 番号の関係と同様に、ID 番号よりも名前の方が覚えやすいのは明らかです。 IP アドレスは、インターネット上のユーザーのサイトを識別する数値アドレスです。覚えやすいように、サイト アドレスを表すために IP アドレスの代わりにドメイン名が使用されます。DNS は、ドメイン名を IP アドレスに解決して、1 対 1 に対応させます。 。

DNS の仕組み

インターネットでは、「権威のある」ドメイン名解決を行うために、2 つのドメイン ネーム サーバーからドメイン名が提供される必要があります。国際ドメイン名の場合、ドメイン名登録機関はInterinc、国内ドメイン名の場合、ドメイン名登録機関はCNNICとなります。すべてのドメイン名を適切に使用するには、2 つの登録機関に登録する必要があります。

たとえば、今すぐ www.baidu.com などの Web サイトにアクセスしたい場合、コンピュータはアクセスする前にこのサイトの IP アドレスを知っている必要があります。したがって、お住まいの地域の「マスター DNS」サーバーに自動的にクエリが送信されます。つまり、「www.baidu.com」の IP は何ですか?サーバー上にドメイン名の記録がない場合は、上位レベルの DNS に移動して検索を繰り返し、最終レベルでも見つからない場合は見つかります。このとき、権威DNSを検索し、対応するIP情報をコンピュータに返します。お使いのコンピュータは、www.baidu.com に対応するサーバーと通信できます。このようなレベルごとのクエリは「再帰的」クエリと呼ばれます。

hosts ファイル

hosts ファイルは接尾辞のないローカル システム ファイルであり、その内容を変更するには管理者権限が必要です。上記の DNS 解決プロセスからわかるように、実際の IP アドレスが最終的に取得される前に、各 DNS 解決が多くの DNS サーバーによって転送される可能性があり、これは非常に非効率的です。したがって、コンピュータ上にローカルに DNS 解決ファイル、つまり hosts ファイルも存在します。ホスト内の www.baidu.com が正しい Baidu サーバー アドレスを指すようにすると、コンピューターは正しいサーバーと通信します。ローカル ホストにマッピング関係が設定されていない場合は、LAN 上の DNS サーバーにアクセスして、対応するマッピング関係を検索します。それでも存在しない場合は、ローカルの対応するノードの DNS で検索し、上記の手順を繰り返します。

nginx reverse proxy

プロキシ: 実際には仲介です。A と B を直接接続することもできましたが、A と B の間に C が追加されました。フォワード プロキシ

は上記の DNS で、クライアントのプロキシとして機能し、クライアントのリクエストを送受信し、サーバーに対して透過的です。ブラウザを使用して http://www.google.com にアクセスすると、容赦なくブロックされます。そのため、海外にプロキシ サーバーをセットアップし、そのプロキシに google.com のリクエストを手伝ってもらうことができます。プロキシは対応する構造を返します。リクエストによって返されました。渡してください。

nginxマルチドメイン転送を実装する方法

リバース プロキシ

は nginx の機能です。サーバーのプロキシとして機能します。サーバーへのリクエストを転送し、クライアントに対して透過的です。 。 www.baidu.com をリクエストするときは、10086 にダイヤルするようなものです。舞台裏で何千ものサーバーがサービスを提供している可能性がありますが、それがどれであるかはわかりませんし、知る必要もありません。リバース プロキシ サーバーが誰であるかが重要です。www.baidu.com は私たちのリバース プロキシ サーバーです。リバース プロキシ サーバーは、リクエストを実際のサーバーに転送するのに役立ちます。 Nginx は、負荷分散に使用される、非常に優れたパフォーマンスを備えたリバース プロキシ サーバーです。

nginxマルチドメイン転送を実装する方法

#nginx は複数のドメイン名のマッピングを行うためにホストを追加します

たとえば、2 つのアプリケーションのドメイン名は a.test です。 .com および b.test.com。

C:WindowsSystem32driversetc ディレクトリで hosts ファイルを見つけ、スーパー管理者権限で開きます。ファイルの最後に

a.test.com 127.0.0.1
b.test.com 127.0.0.1
ログイン後にコピー

を追加し、nginx.conf ファイルを変更し (nginx.conf には多くの設定があるため、ここでは最も単純な例を示します)、http の {} 内にサーバーを追加します。次の内容を追加します:

server {
  listen 80;
  server_name a.test.com;   //填入自己项目对应的域名
  charset utf-8;
  error_log logs/error.log;
  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://127.0.0.1:8888; //填入自己项目的ip加端口号(此处的项目没有工程上下文,只有端口号)
  }
}

server {
  listen 80;
  server_name b.test.com;   //填入自己项目对应的域名
  charset utf-8;
  error_log logs/error.log;
  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://127.0.0.1:8889; //填入自己项目的ip加端口号(此处的项目没有工程上下文,只有端口号)
  }
}
ログイン後にコピー

変更後、nginx 設定ファイルをリロードします

nginx.exe -s reload
ログイン後にコピー

以上がnginxマルチドメイン転送を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート