Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮想ホスト構成の 3 つの仮想ホスト構成方法をサポートしています。 Nginx 仮想ホストを構成する 3 つの方法 (ポートベース) の詳細な説明 https://www.jb51.net/article/14977.htm Nginx 仮想ホストを構成する 3 つの方法の詳細な説明 (ドメイン名に基づく) https://www.jb51.net/article/14978.htm 1. IPベースの仮想ホスト構成 同じサーバーに複数の IP がある場合は、IP ベースの仮想マシン ホスト構成を使用して、異なるサービスを異なる IP にバインドできます。 1.1 サーバーの IP アドレスが 192.168.2.150 であると仮定して、まず ifconfig を使用して、他の 3 つの IP を同じネットワーク インターフェイスにバインドします。 [root@localhost ~]# ifconfig ens33:1 192.168.2.151/24 アップ [root@localhost ~]# ifconfig ens33:2 192.168.2.152/24 アップ [root@localhost ~]# ifconfig ens33:3 192.168.2.153/24 アップ [root@localhost ~]# ifconfig ens33: flags=4163<UP、BROADCAST、RUNNING、MULTICAST> mtu 1500 inet 192.168.2.106 ネットマスク 255.255.255.0 ブロードキャスト 192.168.2.255 inet6 fe80::2a8d:be6:a4a8:ea0 プレフィックス長 64 スコープID 0x20<リンク> ether 00:0c:29:16:90:ae txqueuelen 1000 (イーサネット) RXパケット 1220 バイト 87955 (85.8 KiB) RXエラー 0 ドロップ 0 オーバーラン 0 フレーム 0 TXパケット 206 バイト 23755 (23.1 KiB) TXエラー 0 ドロップ 0 オーバーラン 0 キャリア 0 衝突 0 ens33:1: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet 192.168.2.151 ネットマスク 255.255.255.0 ブロードキャスト 192.168.2.255 ether 00:0c:29:16:90:ae txqueuelen 1000 (イーサネット) ens33:2: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet 192.168.2.152 ネットマスク 255.255.255.0 ブロードキャスト 192.168.2.255 ether 00:0c:29:16:90:ae txqueuelen 1000 (イーサネット) ens33:3: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet 192.168.2.153 ネットマスク 255.255.255.0 ブロードキャスト 192.168.2.255 ether 00:0c:29:16:90:ae txqueuelen 1000 (イーサネット) lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 ネットマスク 255.0.0.0 inet6 ::1 プレフィックス長 128 スコープID 0x10<ホスト> ループ txqueuelen 1 (ローカル ループバック) RXパケット 72バイト 6252 (6.1 KiB) RXエラー 0 ドロップ 0 オーバーラン 0 フレーム 0 TXパケット 72バイト 6252 (6.1 KiB) TXエラー 0 ドロップ 0 オーバーラン 0 キャリア 0 衝突 0 1.2 3つのIPに対応するドメイン名は次のとおりです。テストしやすいようにホストのホストファイルを設定します。 [root@localhost ~]# vim /etc/hosts [root@localhost ~]# cat /etc/hosts 127.0.0.1 ローカルホスト ローカルホスト.ローカルドメイン ローカルホスト4 ローカルホスト4.ローカルドメイン4 ::1 ローカルホスト ローカルホスト.ローカルドメイン ローカルホスト6 ローカルホスト6.ローカルドメイン6 192.168.2.151 www.test151.com 192.168.2.152 www.test152.com 192.168.2.153 www.test153.com DNS ポーリングの状況をシミュレートできます。 注意: hostsファイルを設定したら、必ず次のコマンドを実行して有効にしてください。 1. Windowsでcmdを使用してコマンドラインを入力します。 C:\Users\1234>ipconfig /flushdns Windows IP 構成により、DNS 解決キャッシュが正常にフラッシュされました。 1.3 ウェブページを保存するための仮想ホストのルートディレクトリを作成し、ホームページファイルindex.htmlを作成します。 [root@localhost /]# mkdir -p /data/www [root@localhost /]# cd /data/www [root@localhost www]# mkdir 151 [root@localhost www]# mkdir 152 [root@localhost www]# mkdir 153 [root@localhost www]# echo "192.168.2.151" > 151/index.html [root@localhost www]# echo "192.168.2.152" > 152/index.html [root@localhost www]# echo "192.168.2.153" > 153/index.html [root@localhost www]# ls 151 152 153 1.4 nginx.confを変更し、仮想ホスト設定ファイルをメインファイルに含める [root@localhost /]# cd /usr/local/nginx/conf/ [root@localhost conf]# ls fastcgi.conf fastcgi_params koi-utf mime.types nginx.conf scgi_params uwsgi_params win-utf fastcgi.conf.default fastcgi_params.default koi-win mime.types.default nginx.conf.default scgi_params.default uwsgi_params.default [root@localhost conf]# vim nginx.conf nginx.confファイルの最後に次の設定を追加します。 # httpセクションで次のコンテンツを見つけ、各行の先頭の「#」を削除します log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # 以下のように、構成ファイルの末尾にある最後の「}」の前に次のステートメントを追加します。 include vhost/*.conf; } 1.5 各IPの設定ファイルを編集する(各仮想ホストの設定ファイル) [root@localhost conf]# mkdir -p vhost [root@localhost conf]# cd vhost/ [root@localhost vhost]# cat www.test151.conf サーバー{ 192.168.2.151:80 を聞きます。 # 実際のドメイン名に設定します。各仮想ホスト設定ファイルのドメイン名は同じです #server_name www.test.com; access_log /data/logs/www.test151.com.log メイン; エラーログ /data/logs/www.test151.com.error.log; 位置 / { ルート /data/www/151; インデックス index.html index.htm; } } [root@localhost vhost]# cat www.test152.conf サーバー{ 192.168.2.152:80 を聞きます。 # 実際のドメイン名に設定します。各仮想ホスト設定ファイルのドメイン名は同じです #server_name www.test.com; access_log /data/logs/www.test152.com.log メイン; エラーログ /data/logs/www.test152.com.error.log; 位置 / { ルート /data/www/152; インデックス index.html index.htm; } } [root@localhost vhost]# cat www.test153.conf サーバー{ 192.168.2.153:80 を聞きます。 # 実際のドメイン名に設定します。各仮想ホスト設定ファイルのドメイン名は同じです #server_name www.test.com; access_log /data/logs/www.test153.com.log メイン; エラーログ /data/logs/www.test153.com.error.log; 位置 / { ルート /data/www/153; インデックス index.html index.htm; } } 1.6 ログファイルを作成します。そうしないと nginx を起動できません。 [root@localhost /]# mkdir -p /data/logs [root@localhost /]# touch /data/logs/www.test151.com.log [root@localhost /]# touch /data/logs/www.test151.com.error.log [root@localhost /]# touch /data/logs/www.test152.com.log [root@localhost /]# touch /data/logs/www.test152.com.error.log [root@localhost /]# touch /data/logs/www.test153.com.log [root@localhost /]# touch /data/logs/www.test153.com.error.log [root@localhost /]# ls /data/logs/ www.test151.com.error.log www.test152.com.error.log www.test153.com.error.log www.test151.com.log www.test152.com.log www.test153.com.log 1.7 nginxを起動する前に設定ファイルをテストする [root@localhost /]# cd /usr/local/nginx/sbin/ [root@localhost sbin]# ./nginx -t nginx: 設定ファイル /usr/local/nginx/conf/nginx.conf の構文は正常です nginx: 設定ファイル /usr/local/nginx/conf/nginx.conf のテストが成功しました # nginxを起動する [root@localhost sbin]# ./nginx 1.8 テストファイル [root@localhost sbin]# curl www.test151.com 192.168.2.151 [root@localhost sbin]# curl www.test152.com 192.168.2.152 [root@localhost sbin]# curl www.test153.com 192.168.2.153 付録: 設定中に発生した問題 1. 設定ファイルのテスト中に発生した問題 [root@localhost sbin]# ./nginx -t nginx: [emerg] /usr/local/nginx/conf/nginx.conf:122 に予期しない "}" があります nginx: 設定ファイル /usr/local/nginx/conf/nginx.conf のテストに失敗しました 解決策: 次の文にセミコロンを追加するのを忘れました vhost/*.conf をインクルードします。 2. curl www.test*.comを使用してテストすると、常に同じ結果が得られます。 解決策: server_name の後に IP アドレスを書き込まないでください。server_name の後に追加できるのはドメイン名のみです。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: js クロージャとガベージ コレクション メカニズムの例の詳細な説明
>>: MySQLはトリガーを使用してデータベース内のテーブルの行制限を解決します。詳細な説明と例
以下のコードをDreamweaverのコードエリアにコピーすると、プレビュー時に以下の画像が表示され...
序文この記事では、docker-compose の構成をいくつか紹介します。これらを参考にして、独自...
序文この記事はかなり詳細で、少し面倒です。他のチュートリアル ドキュメントでは多くの手順が省略されて...
この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...
この記事では、星空アニメーションを実現するための高度な CSS3 LESS のサンプルコードを次のよ...
1. コンテナとは、独立して実行されるアプリケーション、またはアプリケーションのグループとその動作環...
この記事では、Frameset が作成した、できるだけシンプルなフレームワークを紹介します。さて、ま...
目次基本的なセレクタ拡張属性セレクタ疑似クラスと疑似要素セレクター基本的なセレクタ拡張1. 子要素セ...
レンダリング 骨組みを定義し、HTMLとCSSを記述するHTML部分 <テンプレート> ...
ソフトウェア パッケージが存在しない場合は、インストールされているソフトウェアのソフトウェア ソース...
Docker はコンテナを作成するときに、デフォルトでブリッジ ネットワークを使用し、IP アドレス...
みなさんこんにちは。私は技術の話ばかりして髪を切らない先生のトニーです。何らかの歴史的な理由や誤操作...
目次背景MySQLが完全に起動したかどうかを確認する方法事故最初の変更2回目の改訂要約するMySQL...
これらの仕様は、下位互換性のあるドキュメントを Web 上で公開し、できるだけ幅広いユーザーがアクセ...
1. BIOSを確認するまず、コンピュータの起動モードを確認します。win+R と入力し、msinf...