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

推薦する

集める価値のある 15 個の JavaScript 関数

目次1. 数字を逆にする2. 配列内の最大のn個の数値を取得する3. 階乗を計算する4. 現在の動作...

MySQL が group by をサポートしない場合の解決策の概要

MySQL 5.7.x の最新バージョンをダウンロードしてインストールしました。デフォルトでは、on...

Typescriptを使用してローカルストレージをカプセル化する方法

目次序文ローカルストレージの使用シナリオ使用上の問題解決機能性有効期限を追加データ暗号化を追加する命...

MySQLのファジークエリの要約

1. 一般的な使用法: (1)%で使用する% は 1 つ以上の文字のワイルドカードを表します。たとえ...

CSSを使用してダークモードとブライトモードを切り替える

Web Skills第5号では、CSSでダークモードやハイライトモードを実装するための技術的なソリュ...

Spark と Scala を使用して Apache アクセス ログを分析する方法

インストールまず、Java と Scala をインストールし、次に Spark をダウンロードしてイ...

XHTMLタグには終了タグがある

<br />オリジナルリンク: http://www.dudo.org/article....

インデックスは MySQL クエリ条件で使用されますか?

雇用主から MySQL クエリ条件でインデックスが使用されるかどうかを尋ねられた場合、どのように答え...

docker イメージのプル速度が遅い問題の解決策

現在、Docker には中国向けの公式ミラーがあります。詳細については、https://www.do...

JS 面接の質問: forEach はループから抜け出すことができますか?

この質問をされたとき、私は無知で頭が真っ白になりました。もちろん、正しく答えられませんでした。私はず...

Nginx の場所に関する一般的なルールの優先順位の問題

目次1. 場所/マッチング2. 場所 = / 一致Locaitonには、完全一致(=)、プレフィック...

Vue 父子価値移転、兄弟価値移転、子父価値移転の詳細な説明

目次1. 親コンポーネントが子コンポーネントに値を渡す1. 親コンポーネント.vue 2. サブコン...

WindowsにJDK8をインストールする方法

1. ダウンロード: http://www.oracle.com/technetwork/java/...

MySql Installer 8.0.18 画像とテキストによるビジュアル インストール チュートリアル

目次1. MySQL 8.0.18のインストール2. 環境変数を設定する3. 接続テスト1. MyS...