シンプルなアプリケーションサーバーで異なるビジネス向けに複数の独立した Web サイトをデプロイする場合、Apache 構成ファイルを変更して、複数のドメイン名を異なる Web サイトにポイントできます。これにより、サーバーリソースを最大限に活用し、管理と運用の効率を向上させることができます。
前提条件
Linux、Apache、MySQL、および PHP (LAMP) アプリケーションイメージからシンプルなアプリケーションサーバーが作成されます。詳細については、LAMP 開発環境を構築するを参照してください。
複数のドメイン名が登録されています。Alibaba Cloud でのドメイン名の登録方法については、Alibaba Cloud でドメイン名を登録する Alibaba Cloud でドメイン名を登録する方法を参照してください。
環境の準備
この例では、次のリソースを使用します。
サーバー: LAMP 7.4 アプリケーションイメージから作成されたシンプルなアプリケーションサーバー。
2 つのテスト Web サイト:
test01
とtest02
。2 つのテストドメイン名:
test01.example.com
とtest02.example.com
。
このトピックで説明されている構成を完了すると、次の操作を実行できます。
test01.example.com
を使用してtest01
Web サイトにアクセスする。test02.example.com
を使用してtest02
Web サイトにアクセスする。
実際の操作では、これらのサンプルリソースを独自のリソースに置き換える必要があります。
手順 1: テスト Web サイトを作成する
複数の Web サイトのコードが既にサーバー上の Web サイトのルートディレクトリに保存されている場合は、この手順をスキップします。
LAMP サーバーに接続します。
詳細については、Linux サーバーに接続するを参照してください。
次のコマンドを実行して、Web サイトのルートディレクトリに移動します。
Web サイトのルートディレクトリは、シンプルなアプリケーションサーバーで使用される LAMP アプリケーションイメージの LAMP バージョンによって異なります。
サーバーで LAMP 7.4 アプリケーションイメージを使用する場合、Web サイトのルートディレクトリは /data/wwwroot/example です。
サーバーで LAMP 6.1.0 アプリケーションイメージを使用する場合、Web サイトのルートディレクトリは /home/www/htdocs です。
この例では、LAMP 7.4 アプリケーションイメージを使用します。したがって、次のコマンドを実行して Web サイトのルートディレクトリに移動します。
cd /data/wwwroot/example
次のコマンドを順番に実行して、2 つのサブディレクトリを作成します。
サブディレクトリは、Web サイトのコードを保存するために使用されます。
sudo mkdir test01
sudo mkdir test02
次のコマンドを実行して test01 サブディレクトリに移動します。test01 サブディレクトリに index.html という名前のファイルを作成し、ファイルを編集します。
test01 サブディレクトリに移動します。
cd /data/wwwroot/example/test01/
次のコマンドを実行して
index.html
ファイルを作成します。sudo vi index.html
I
キーを押して編集モードに入り、ファイルに次のテスト情報を追加します。Test page 01
Esc
キーを押し、:wq
と入力し、Enter キーを押してファイルを保存して閉じます。
test02
サブディレクトリに移動し、index.html
ファイルを作成して編集します。次のコマンドを実行して
test02
サブディレクトリに移動します。cd /data/wwwroot/example/test02/
次のコマンドを実行して
index.html
ファイルを作成します。sudo vi index.html
I
キーを押して編集モードに入り、ファイルに次のテスト情報を追加します。Test page 02
Esc
キーを押し、:wq
と入力し、Enter キーを押してファイルを保存して閉じます。
手順 2: Apache 構成ファイルを変更する
httpd.conf 構成ファイルを変更します。
次のコマンドを実行して httpd.conf ファイルを開きます。
sudo vi /etc/httpd/conf/httpd.conf
I キーを押して編集モードに入り、構成を変更します。
次の構成を見つけます。
# Virtual hosts #Include conf/extra/httpd-vhosts.conf
#Include conf/extra/httpd-vhosts.conf
行の先頭から#
を削除します。次の図は、変更後の行を示しています。
Esc キーを押し、
:wq
と入力し、Enter キーを押してファイルを保存して閉じます。
vhosts.conf 構成ファイルを変更します。
次のコマンドを実行して vhosts.conf 構成ファイルを開きます。
sudo vi /etc/httpd/conf.d/vhost.conf
I
キーを押して編集モードに入り、構成を変更します。ファイル内の
<VirtualHost *:80></VirtualHost>
タグで囲まれたデフォルトの構成をコメントアウトし、複数のドメイン名を手動で追加する必要があります。この例では、次の操作を実行します。
次の図に示すように、デフォルトの構成をコメントアウトします。
ファイルの末尾に次の構成を追加します。
<VirtualHost *:80> DocumentRoot "/data/wwwroot/example/test01" ServerName test01.example.com </VirtualHost> <VirtualHost *:80> DocumentRoot "/data/wwwroot/example/test02" ServerName test02.example.com </VirtualHost>
必要に応じて、次のパラメーターを構成できます。
DocumentRoot
: Web サイトディレクトリ。DocumentRoot "<Web サイトディレクトリ>"
形式でこのパラメーターを指定します。ServerName
: ドメイン名。ServerName <ドメイン名>
形式でこのパラメーターを指定します。
Esc
キーを押し、:wq
と入力し、Enter
キーを押してファイルを保存して閉じます。
次のコマンドを実行して Apache を再起動します。
sudo systemctl restart httpd
手順 3: ドメイン名をバインドする
この例で使用されている 2 つのテストドメイン名の場合、Windows コンピューターの hosts ファイルに、これらのドメイン名と LAMP サーバーのパブリック IP アドレス間のマッピングを追加する必要があります。
Web サイトを構成するときに実際のドメイン名を使用する場合は、この手順をスキップします。複数のドメイン名を LAMP サーバーにバインドする必要があります。詳細については、ドメイン名をバインドして解決するを参照してください。ドメイン名がバインドされると、ドメイン名を使用して対応する Web サイトにアクセスできます。
C:\Windows\System32\drivers\etc
ディレクトリに移動します。バックアップ用に
hosts
ファイルをコピーします。hosts - copy ファイルを保持します。これは、テスト完了後に hosts ファイルを初期状態に復元するために使用できます。
hosts
ファイルを変更します。hosts ファイルの末尾に次のコンテンツを追加します。
<シンプルなアプリケーションサーバーのパブリック IP アドレス> test01.example.com <シンプルなアプリケーションサーバーのパブリック IP アドレス> test02.example.com
Windows デスクトップに戻り、管理者としてコマンドプロンプトを実行します。
コマンドプロンプトウィンドウで次のコマンドを実行して、
hosts
ファイルの新しい構成をすぐに有効にします。ipconfig /flushdns
手順 4: バインドされたドメイン名を使用して Web サイトにアクセスする
ブラウザーを使用して、Windows コンピューター上のテスト Web サイトにアクセスします。
次の図に示すように、
test01.example.com
を使用してtest01
Web サイトにアクセスします。次の図に示すように、
test02.example.com
を使用してtest02
Web サイトにアクセスします。
参照
ドメイン名に HTTPS アクセスを構成して、データ転送プロトコルを低コストで HTTP から HTTPS に変換できます。これにより、Web サイトの認証と暗号化データ転送が実装され、転送中のデータ改ざんや情報漏えいが防止されます。詳細については、次のトピックを参照してください。