単一の Linux Elastic Compute Service (ECS) インスタンス上で Nginx を使用して複数のウェブサイトをホストすることで、コストを削減し、管理を一元化できます。
前提条件
パブリック IP アドレスを持つ ECS インスタンスが作成済みで、LNMP スタックがデプロイ済みであること。詳細については、「LNMP スタックのデプロイ」または「(未定) Docker を使用した LNMP スタックのデプロイ」をご参照ください。
このチュートリアルでは、Nginx で複数のウェブサイトを設定するためのワンクリックデプロイソリューションを提供しています。 ワンクリックで実行
テスト用ウェブサイトの作成
-
LNMP スタックをデプロイした ECS インスタンスに接続します。詳細については、「ワークベンチを使用した Linux インスタンスへの接続」をご参照ください。
-
ウェブサイトのルートディレクトリに移動します。
cd /usr/share/nginx/html -
テストウェブサイトのプロジェクトコード用に、テストフォルダを 2 つ作成します。
sudo mkdir Testpage-1 sudo mkdir Testpage-2 -
Testpage-1ウェブサイトを設定します。-
Testpage-1フォルダに移動します。cd /usr/share/nginx/html/Testpage-1/ -
index.htmlファイルを作成して編集します。sudo vim index.html -
iを押して編集モードに入り、次の内容を追加します。Test page 1Escキーを押し、:wqと入力して Enter キーを押し、ファイルを保存して終了します。
-
-
Testpage-2ウェブサイトを設定します。-
Testpage-2フォルダに移動します。cd /usr/share/nginx/html/Testpage-2/ -
index.htmlファイルを作成して編集します。sudo vim index.html -
iを押して編集モードに入り、次の内容を追加します。Test page 2Escキーを押し、:wqと入力して Enter キーを押し、ファイルを保存して終了します。
-
Nginx の設定
-
nginx.conf設定ファイルを表示します。cat /etc/nginx/nginx.confhttp{}モジュール内で、include設定を確認します。この例では、設定は次の図のようになります。
include /etc/nginx/conf.d/*.conf;は、Nginx がこのパスにあるすべての.confファイルからサイト設定を読み込むことを示します。
-
/etc/nginx/conf.dディレクトリに移動します。cd /etc/nginx/conf.d -
Testpage-1ウェブサイト用の Nginx 設定ファイルを作成して設定します。-
設定ファイルを作成して編集します。
sudo vim Testpage1.conf -
iを押して編集モードに入り、次の内容を追加します。コメントの指示に従い、サーバードメイン名とプロジェクトパスを置き換えます。
server { listen 80; server_name testpage1.com; # これはテストドメイン名です。実際のサーバードメイン名に置き換えてください。 #charset koi8-r; access_log /var/log/nginx/b.access.log main; location / { root /usr/share/nginx/html; # これはテスト Web サイトのパスです。実際のプロジェクトコードのパスに置き換えてください。 index index.html index.htm; } #error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }Escキーを押し、:wqと入力して Enter キーを押し、ファイルを保存して終了します。
-
-
Testpage-2ウェブサイト用の Nginx 設定ファイルを作成して設定します。-
設定ファイルを作成して編集します。
sudo vim Testpage2.conf -
iを押して編集モードに入り、次の内容を追加します。コメントの指示に従い、サーバードメイン名とプロジェクトパスを置き換えます。
server { listen 80; server_name testpage2.com; # これはテストドメイン名です。実際のサーバードメイン名に置き換えてください。 #charset koi8-r; access_log /var/log/nginx/b.access.log main; location / { root /usr/share/nginx/html; # これはテスト Web サイトのパスです。実際のプロジェクトコードのパスに置き換えてください。 index index.html index.htm; } #error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }Escキーを押し、:wqと入力して Enter キーを押し、ファイルを保存して終了します。
-
-
Nginx サービスを再起動します。
sudo systemctl restart nginx
結果の確認
Nginx の名前ベースの仮想ホスト設定をテストするには、ドメイン名を IP アドレスにマッピングする必要があります。お使いのコンピューターの hosts ファイルを変更することで、このマッピングをシミュレートできます。
-
Access
http://<Public IP address of the ECS instance>/Testpage-1. TheTestpage-1website appears as shown in the following figure.
-
Access
http://<Public IP address of the ECS instance>/Testpage-2. TheTestpage-2website appears as shown in the following figure.
これで、単一のインスタンス上で複数のウェブサイトが正しく設定されていることが確認できました。本番環境でウェブサイトを公開する際は、実際のドメイン名を使用し、DNS で名前解決を設定してください。
次のステップ
ドメイン名を使用してウェブサイトを一般公開するには、次の手順を実行します。
-
ドメイン名の登録
詳細については、「ドメイン名の登録」をご参照ください。
-
ICP ファイリングの完了
ドメイン名が中国本土の Alibaba Cloud サーバーでホストされているウェブサイトに紐付けられている場合は、ICP ファイリングを完了する必要があります。詳細については、「ICP ファイリングのプロセス」をご参照ください。
-
ドメイン名の名前解決
ドメイン名をインスタンスのパブリック IP アドレスに紐付けるには、「ウェブサイト名前解決レコードの追加」をご参照ください。
関連ドキュメント
Windows インスタンスで複数のウェブサイトをデプロイする方法については、「IIS を使用した複数ウェブサイトの設定」をご参照ください。