Nginx 仮想ホストを構成する 3 つの方法 (ポートベース) の詳細な説明

Nginx 仮想ホストを構成する 3 つの方法 (ポートベース) の詳細な説明

Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮想ホスト構成の 3 つの仮想ホスト構成方法をサポートしています。

Nginx 仮想ホスト (IP ベース) を構成する 3 つの方法の詳細な説明 https://www.jb51.net/article/14974.htm

Nginx 仮想ホストを構成する 3 つの方法の詳細な説明 (ドメイン名に基づく) https://www.jb51.net/article/14978.htm

2. Nginx ポートベースの仮想ホスト構成

サーバーの IP が 1 つしかない場合、または異なるポートを介して異なる仮想ホストにアクセスする必要がある場合は、ポートベースの仮想ホスト構成を使用できます。

2.1 サーバーのIPアドレスが192.168.2.154であると仮定します。

[root@localhost conf]# ifconfig ens33:4 192.168.2.154/24 アップ
[root@localhost conf]# ifconfig
ens33:4: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500
 inet 192.168.2.154 ネットマスク 255.255.255.0 ブロードキャスト 192.168.2.255
 ether 00:0c:29:16:90:ae txqueuelen 1000 (イーサネット)

2.2 設定する必要がある仮想ホストは 7081、8081、9081 です。ホストのホスト ファイルを設定すると、テストに便利です。

[root@localhost conf]# vim /etc/hosts
[root@localhost conf]# cat /etc/hosts|grep 192.168.2.154
192.168.2.154 www.test154.com

2.3 ウェブページを保存するための仮想ホストのルートディレクトリを作成し、ホームページファイルindex.htmlを作成します。

[root@localhost conf]# cd /data/www/
[root@localhost www]# mkdir ポート
[root@localhost www]# cd port/
[root@localhost ポート]# mkdir 7081 8081 9081
[root@localhost ポート]# ls
7081 8081 9081
[root@localhost port]# echo "ポート 7081" > 7081/index.html
[root@localhost port]# echo "ポート 8081" > 8081/index.html
[root@localhost port]# echo "ポート 9081" > 9081/index.html

2.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

2.5 各ポートの設定ファイルを編集する

[root@localhost vhost]# vim www.test154.7081.conf
[root@localhost vhost]# cat www.test154.7081.conf
 サーバー{
 192.168.2.154:7081 をリッスンします。
 # 実際のドメイン名に設定します。各仮想ホスト設定ファイルのドメイン名は同じです #server_name www.test.com;

 access_log /data/logs/www.test154.7081.log メイン;
 エラーログ /data/logs/www.test154.7081.error.log;

 位置 / {
  ルート /data/www/port/7081;
  インデックス index.html index.htm;
 }
 }

[root@localhost vhost]# vim www.test154.8081.conf
[root@localhost vhost]# cat www.test154.8081.conf
 サーバー{
 192.168.2.154:8081 をリッスンします。
 # 実際のドメイン名に設定します。各仮想ホスト設定ファイルのドメイン名は同じです #server_name www.test.com;

 access_log /data/logs/www.test154.8081.log メイン;
 エラーログ /data/logs/www.test154.8081.error.log;

 位置 / {
  ルート /data/www/port/8081;
  インデックス index.html index.htm;
 }
 }

[root@localhost vhost]# vim www.test154.9081.conf
[root@localhost vhost]# cat www.test154.9081.conf
 サーバー{
 192.168.2.154:9081 をリッスンします。
 # 実際のドメイン名に設定します。各仮想ホスト設定ファイルのドメイン名は同じです #server_name www.test.com;

 access_log /data/logs/www.test154.9081.log メイン;
 エラーログ /data/logs/www.test154.9081.error.log;

 位置 / {
  ルート /data/www/port/9081;
  インデックス index.html index.htm;
 }
 }

2.6 ログファイルを作成します。そうしないと nginx を起動できません。

[root@localhost /]# mkdir -p /data/logs
[root@localhost /]# touch /data/logs/www.test154.7081.log
[root@localhost /]# touch /data/logs/www.test154.7081.error.log
[root@localhost /]# touch /data/logs/www.test154.8081.log
[root@localhost /]# touch /data/logs/www.test154.8081.error.log
[root@localhost /]# touch /data/logs/www.test154.9081.log
[root@localhost /]# touch /data/logs/www.test154.9081.error.log
[root@localhost /]# ls /data/logs/
www.test154.7081.error.log www.test154.8081.error.log www.test154.9081.error.log
www.test154.7081.log www.test154.8081.log www.test154.9081.log

2.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

2.8 テストファイル

[root@localhost ~]# curl http://www.test154.com:7081
ポート 7081
[root@localhost ~]# curl http://www.test154.com:8081
ポート 8081
[root@localhost ~]# curl http://www.test154.com:9081
ポート 9081

付録: 設定中のトラブル

1. 最終テスト中に発生した問題

[root@localhost sbin]# curl http://www.test154.com:7081
curl: (7) www.test154.com:7081 への接続に失敗しました。接続が拒否されました [root@localhost sbin]# curl 192.168.2.154:7081
curl: (7) 192.168.2.154:7081への接続に失敗しました。接続が拒否されました

解決:

1.1 次のコマンドを使用して、Nginxが対応するポートでリッスンしているかどうかを確認します。

[root@localhost conf]# netstat -lnt
アクティブなインターネット接続(サーバーのみ)
プロトコル 受信-Q 送信-Q ローカルアドレス 外部アドレス 状態
tcp 0 0 0.0.0.0:111 0.0.0.0:* 聞く
tcp 0 0 192.168.2.153:80 0.0.0.0:* 聞く
tcp 0 0 192.168.2.152:80 0.0.0.0:* 聞く
tcp 0 0 192.168.2.151:80 0.0.0.0:* 聞く
tcp 0 0 0.0.0.0:8080 0.0.0.0:* 聞く
tcp 0 0 192.168.2.154:8081 0.0.0.0:* 聞く
tcp 0 0 0.0.0.0:22 0.0.0.0:* 聞く
tcp 0 0 192.168.2.154:9081 0.0.0.0:* 聞く
tcp 0 0 127.0.0.1:25 0.0.0.0:* 聞く
tcp 0 0 192.168.2.154:7081 0.0.0.0:* 聞く
tcp6 0 0 :::111 :::* 聞く
tcp6 0 0 :::22 :::* 聞く
tcp6 0 0 :::23 :::* 聞く
tcp6 0 0 ::1:25 :::* 聞く

1.2 Nginxが対応するポートをリッスンしていない場合は、Nginxサービスを再起動します。それでも動作しない場合は、サーバーを再起動します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Nginx 仮想ホスト (IP ベース) を構成する 3 つの方法の詳細な説明
  • nginx 仮想ホスト設定例の詳細な説明
  • Nginx 仮想ホストを構成する 3 つの方法 (ドメイン名に基づく)

<<:  Vue で親子コンポーネントの値を双方向バインドするために v-model を使用するときに発生する問題と解決策

>>:  deepin 2014 システムに MySQL データベースをインストールする方法

推薦する

W3C チュートリアル (2): W3C プログラム

W3C 標準化プロセスは 7 つの異なるステップに分かれています。 W3C 標準化プロセスは 7 つ...

Ubuntu 20.04 に MySql5.7 をインストールして構成するための詳細なチュートリアル

目次1. Ubuntuソースの変更2. MySQLをインストールする3. 新しいユーザーを作成し、権...

Vueページジャンプの実装方法

1. this.$router.push() 1. ビュー <テンプレート> <d...

MySQL アーキテクチャのナレッジポイントの概要

1. データベースとデータベースインスタンスMySQL の研究では、データベースとデータベース イン...

純粋な HTML ページを送信し、パラメータを渡し、ID を確認する方法

プロジェクトにはアンケートが必要ですが、クライアントはアンケートのタイトルが純粋なHTMLタグでなけ...

CSS3マスクレイヤーのくり抜き効果を実現するさまざまな方法

この記事では、マスク レイヤーの中空化を実現する 4 つの方法を紹介します。みんなと共有し、自分用の...

Vueはv-modelを使用してel-paginationコンポーネントのプロセス全体をカプセル化します。

v-model を使用してページング情報オブジェクトをバインドします。ページング情報オブジェクトに...

js のマクロタスクとマイクロタスクについての簡単な説明

目次1. JavaScriptについて2. JavaScript イベントループ3. マクロタスクと...

ドロップダウンメニューとスライドメニューのデザイン例

ドロップダウン メニューやスライド メニューを使用している Web サイトをたくさん見つけたので、私...

LinuxベースのLVMシームレスディスク水平拡張の詳細な説明

環境名前財産CPU 5650 円メモリ4Gディスク20G+4TB この時点で、サーバーにはすでに次の...

Web インタビュー Vue カスタム コンポーネントと呼び出しメソッド

輸入:プロジェクトの要件により、同じコードの一部をコンポーネントにカプセル化し、必要な場所にインポー...

Nginx で IP と IP 範囲をブロックする方法

前面に書かれたNginx は単なるリバース プロキシおよび負荷分散サーバーではなく、電流制限、キャッ...

MySQL フルテキスト検索の中国語ソリューションとサンプルコード

MySQL 全文検索中国語ソリューション最近、会社のプロジェクトで、データベースで中国語を検索する機...

Ubuntu 20.04の新バージョンでルートユーザーを使用してシステムにログインする方法の詳細なチュートリアル

Ubuntu 20.04 では、デフォルトで root ログインが有効になっていないため、デスクトッ...

Vue 組み込みコンポーネントのキープアライブでの LRU アルゴリズムの使用

目次Vue の keep-alive 組み込みコンポーネントの使用でもこのアルゴリズムが使用されます...