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 データベースをインストールする方法

推薦する

MySQL データベース分離レベルと MVCC の詳細な説明

目次1. 分離レベルコミットされていない読み取りREAD COMMITED (コミット読み取り/非反...

Windows 10 1903 エラー 0xc0000135 の解決方法 [推奨]

Windows 10 1903 は、2019 年に Microsoft がリリースした Windo...

MySql で正規表現クエリを使用する方法

正規表現は、特定のパターンに一致するテキストを検索および置換するためによく使用されます。たとえば、テ...

優れたウェブフロントエンドデザインの指標

Web ページのアクセシビリティは、フロントエンドでのみ評価および実装できるもののようです。ユーザビ...

mysql のインデックスと FROM_UNIXTIME に関する問題

ゼロ、背景今週の木曜日にたくさんのアラートを受け取りました。DBA に確認を依頼したところ、遅いクエ...

JavaScript カラービューア

この記事では、カラービューアを実装するためのJavaScriptの具体的なコードを参考までに紹介しま...

Mysql5.7 のグループ連結関数を使用するときにデータが切り捨てられる問題に対する完璧な解決策

一昨日、本番環境でGROUP_CONCAT関数を使用して選択したデータが切り捨てられ、最大長が102...

Linux での Redis の永続性、マスター スレーブ同期、Sentinel の詳細な説明

1.0 Redis の永続性Redis はメモリ内データベースです。サーバー プロセスが終了すると、...

MySQL 8.0.23のルートパスワードをリセットするための最適なソリューション

この方法は2021年2月7日に編集されました。私が使用しているバージョンは8.0.23です。事件の原...

22 Vue 最適化のヒント (プロジェクトの実践)

目次コードの最適化v-for でキーを使用するv-if/v-else-if/v-else でキーを使...

JSを使用して簡単な計算機を実装する

JSを使用して、参考用の簡単な計算機を完成させます。具体的な内容は次のとおりです。要件: 入力値は数...

JSはモバイル端末の画面を1つずつ上下にスライドさせる機能を実装します

この記事では、モバイル端末を一度に1画面ずつ上下にスライドさせるためのJSの具体的なコードを参考まで...

Win10にnginxをインストールして設定するプロセス

1. はじめにNginx は、無料のオープンソースの高性能 HTTP サーバーおよびリバース プロキ...

CentOS で RPM を使用して MySQL 5.6 をインストールするチュートリアル

これまでのプロジェクトはすべて Windows システム環境にデプロイされていました。今回は Lin...

MySQL マスタースレーブレプリケーションの役割と動作原理の詳細な説明

1. マスタースレーブレプリケーションとは何ですか?マスタースレーブレプリケーションは、スレーブデー...