仮想ホストは、インターネット上で実行されているサーバー ホストを複数の「仮想」ホストに分割する特殊なソフトウェアおよびハードウェア テクノロジを使用します。各仮想ホストは、独立したドメイン名と完全なインターネット サーバー機能 (WWW、FTP、電子メールなど) を備えた独立した Web サイトにすることができます。同じホスト上の仮想ホストは完全に独立しています。ウェブサイト訪問者の観点から見ると、各仮想ホストはスタンドアロン ホストとまったく同じです。 仮想ホストを使用すると、実行する Web サイトごとに個別の Nginx サーバーを用意したり、個別の Nginx プロセス セットを実行したりする必要がありません。仮想ホストは、同じサーバー上および同じ Nginx プロセス セット上で複数の Web サイトを実行する機能を提供します。 仮想ホストを構成する方法は 3 つあります。
方法 1: 複数のネットワーク カードと複数の IP2つの物理ネットワークカード、2つのIP # 2 つの物理ネットワーク カード ens32 と ens34 [root@nginx ネットワーク スクリプト]# ifconfig ens32 | awk 'NR==2 {print $2}' 192.168.126.41 [root@nginx ネットワーク スクリプト]# ifconfig ens34 | awk 'NR==2 {print $2}' 192.168.126.42 設定ファイルを編集して、各IPに基づいて仮想ホストを作成します。 # /etc/nginx/conf.d/default.conf 設定ファイルに影響が及ばないようにするには、名前を [root@nginx ~] に変更します。# mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default [root@nginx ~]# vim /etc/nginx/conf.d/ip.conf # ens32 ネットワークカードに対応する仮想ホストサーバー { 192.168.126.41:80 を聞きます。 位置 / { ルート /ip_ens32; インデックス index.html; } } # 仮想ホストサーバーに対応するens34ネットワークカード{ 192.168.126.42:80 を聞きます。 位置 / { ルート /ip_ens34; インデックス index.html; } } 仮想ホストのWebページファイルディレクトリとファイルを作成する [root@nginx ~]# mkdir /ip_ens32 [root@nginx ~]# mkdir /ip_ens34 [root@nginx ~]# echo "ens32" > /ip_ens32/index.html [root@nginx ~]# echo "ens34" > /ip_ens34/index.html 設定ファイルの構文を確認してください [root@nginx ~]# nginx -t nginx: 設定ファイル /etc/nginx/nginx.conf の構文は正常です nginx: 設定ファイル /etc/nginx/nginx.conf のテストが成功しました nginx サービスを再読み込みする [root@nginx ~]# systemctl reload nginx テスト [root@nginx ~]# カール 192.168.126.41 ens32 [root@nginx ~]# カール 192.168.126.42 ens34 方法 2: 複数の IP アドレスを持つ単一のネットワーク カード1つの物理ネットワークカードに複数のIPを設定する ip addr add IP/MASK dev ネットワークカード名# delete ip addr del IP/MASK dev ネットワークカード名 残りの手順は、上記のマルチNICマルチIP構成と同じです。 ポートベース ドメイン名が使用できない、または存在しない場合に社内で主に使用されます構成 [root@nginx ~]# vim /etc/nginx/conf.d/port.conf サーバー{ 聞く 81; 位置 / { ルート /port_81; インデックス index.html; } } サーバー{ 聞く 82; 位置 / { ルート /port_82; インデックス index.html; } } [root@nginx ~]# mkdir /port_{81..82} [root@nginx ~]# echo "81" > /port_81/index.html [root@nginx ~]# echo "82" > /port_82/index.html [root@nginx ~]# nginx -t nginx: 設定ファイル /etc/nginx/nginx.conf の構文は正常です nginx: 設定ファイル /etc/nginx/nginx.conf のテストが成功しました [root@nginx ~]# systemctl reload nginx テスト [root@nginx ~]# カール 192.168.126.41:81 81 [root@nginx ~]# カール 192.168.126.41:82 82 ドメイン名に基づく構成通常、1 つのドメイン名は 1 つの構成ファイルに対応するため、管理が容易です。 [root@nginx ~]# vim /etc/nginx/conf.d/test1.dxk.com.conf サーバー{ 聞く 80; サーバー名 test1.dxk.com; 位置 / { ルート /test1; インデックス index.html; } } [root@nginx ~]# vim /etc/nginx/conf.d/test2.dxk.com.conf サーバー{ 聞く 80; サーバー名 test2.dxk.com; 位置 / { ルート/test2; インデックス index.html; } } [root@nginx ~]# mkdir /test{1..2} [root@nginx ~]# echo "test1" > /test1/index.html [root@nginx ~]# echo "test2" > /test2/index.html [root@nginx ~]# nginx -t nginx: 設定ファイル /etc/nginx/nginx.conf の構文は正常です nginx: 設定ファイル /etc/nginx/nginx.conf のテストが成功しました [root@nginx ~]# systemctl reload nginx テスト# ドメイン名解決を設定する [root@nginx ~]# echo -e "192.168.126.41 test1.dxk.com\n192.168.126.41 test2.dxk.com" >> /etc/hosts [root@nginx ~]# cat /etc/hosts 127.0.0.1 ローカルホスト ローカルホスト.ローカルドメイン ローカルホスト4 ローカルホスト4.ローカルドメイン4 ::1 ローカルホスト ローカルホスト.ローカルドメイン ローカルホスト6 ローカルホスト6.ローカルドメイン6 192.168.126.41 テスト1.dxk.com 192.168.126.41 テスト2.dxk.com [root@nginx ~]# curl test1.dxk.com テスト1 [root@nginx ~]# curl test2.dxk.com テスト2 問題は次の通りです: ドメイン名の解決が正しく構成されていない場合、間違ったドメイン名にアクセスしたときに Web ページのコンテンツが返されます (間違ったドメイン名の仮想ホストが構成されていません)。 [root@nginx ~]# vim /etc/hosts 192.168.126.41 テスト1.dxk.com 192.168.126.41 test3.dxk.com # これは test2.dxk.com であるはずですが、誤って記述されており、test3.dxk.com ドメイン名に対応する仮想ホストが存在しません。 間違ったドメイン名にアクセスする [root@nginx ~]# curl test3.dxk.com テスト1 # ご覧のとおり、Webページの情報は引き続き返されます ドメイン名解決を設定する際に、ドメイン名が間違って記述されていても、IP は正しいためです。この場合、サーバーはデフォルトで、IP とポート 80 に一致する最初の仮想ホストの Web ページ情報をクライアントに返します。 [root@nginx ~]# ll /etc/nginx/conf.d/ -rw-r--r--。1 ルート ルート 112 7月 3日 21:23 test1.dxk.com.conf -rw-r--r--。1 ルート ルート 112 7月 3日 21:22 test2.dxk.com.conf これは注目すべきことだ nginx 仮想ホストに関するこの記事はこれで終わりです。より関連性の高い nginx 仮想ホストのコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。皆様が今後も 123WORDPRESS.COM を応援してくれることを願っています。 以下もご興味があるかもしれません:
|
// これをインストールするのに丸一日かかったので、記録するためにメモを書きました。 //何か問題が...
目次コンポーネントの基本概念オブジェクトとコンポーネントの違い成分属性属性とプロパティ属性:財産:ク...
インストールユーザーにインストール権限があることを確認してくださいルートスイッチなしsuルート(su...
Webサービスのリモートデバッグ.NET では、WEBSERVICE のリモート デバッグ機能はデフ...
コンポジション継承組み合わせ継承は、疑似古典的継承とも呼ばれます。これは、昨日説明したプロトタイプ ...
1. Dockerに適したRedisのバージョンを見つけるdocker hubで見つけることができ...
目次1. ミニプログラム下請け2. Uniapp 下請けアプレット下請けの手順: 1. manife...
MySQL 8.0.16 以降では、パスワードの有効期限ポリシーを設定できます。今日は、この小さな知...
本日、開発中に、顧客からページをキャッシュしないように要求される方法に遭遇しました。調べたところ、ペ...
序文ミニプログラムを開発する過程では、録音機能を実装し、録音を再生し、録音をサーバーにアップロードす...
当初の意図は、element-ui の $notify 通知をコンポーネントにカプセル化することでし...
序文負荷分散には nginx を使用します。アーキテクチャのフロントエンドまたは中間層として、トラフ...
vue3 が誕生してからかなり時間が経ち、筆者も最近になって vue3 を学び始めました。 vue2...
目次序文yarn create は何をしますか?ソースコード分析プロジェクトの依存関係テンプレート構...
MJML は、開発者が美しく、応答性に優れ、あらゆるデバイスやメール クライアントで動作する魅力的な...