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

推薦する

JS 継承の詳細

目次序文準備する要約する継承方法プロトタイプ継承プロトタイプチェーン継承コンストラクタの借用(クラス...

Linux サーバーは最大いくつのポートを開くことができますか?

目次ポート関連の概念:ポートとサービスの関係1: nmapツールが開いているポートを検出する2: n...

概要ページでのフロートとクリアフロート

1. フロート: 主な目的は、テキストを画像の周囲に折り返す効果を実現することです。また、複数列レイ...

JavaScript は 9 グリッドのクリックによる色の変更効果を実装します

この記事では、9グリッドクリックの色変更効果を実現するためのJavaScriptの具体的なコードを参...

MySQL 分離列とプレフィックスインデックスの使用の概要

目次データ列を分離するプレフィックスインデックスとインデックスの選択性データ列を分離するMySQL ...

画像の半透明処理 画像と半透明の背景の実装のアイデアとコード

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

echartsマップカルーセルハイライトを解決するための記事

目次序文やることリストやるだけ地図を準備するインスタンスをバックアップ用に保存するタイマーカルーセル...

IE6/7 における a.getAttribute(href,2) 問題の分析と解決

簡単な説明<br />IE6および7では、一般的なaタグ(HTMLで記述され、DOM操作...

CSS3はグラフィックの落下アニメーション効果を実現します

まずは効果を確認実装コード <div class="box box1"&g...

MySQL InnoDB ロックの概要

目次1. 共有ロックと排他ロック2. 意図ロック3. レコードロック4. ギャップロック5. ネクス...

HTMLタグの書き方でよくある間違い

注意を払う必要があります。HTML Police がコードを調べて、意味のないタグをすべて見つけ出す...

2つのウェブサイトページ翻訳プラグインの共有

TranslateThis URL: http://translateth.is Google 翻訳...

MySQL ストアド プロシージャ、カーソル、トランザクションの例の詳細な説明

MySQL ストアド プロシージャ、カーソル、トランザクションの例の詳細な説明以下は私が作成した M...

入力スクリプトなしでタイプ拡張を使用する方法

序文JS の型付けが弱く、記述基準が緩く、開発ツールのサポートが弱いため、前任者のコードをメンテナン...

Linux gzip コマンドのファイル圧縮実装原理とコード例

gzip は、Linux システムでファイルの圧縮と解凍によく使用されるコマンドです。このコマンドで...