web-dev-qa-db-ja.com

単一のAWSEC2インスタンスで複数のドメインとサブドメインをホストする方法

AWSでいくつかのサブドメイン(app.domain1.com)を持つ2つのドメイン(domain1.comとdomain2.com)をセットアップし、それらを単一のインスタンス(Amazon Linux、PHP、MySQL)で実行しようとしています。

AWSRoute53に次の構成で3つのホストゾーンをセットアップしました。

ホストゾーン1:
domain1.com
タイプA
52.108.XX.YY

ホストゾーン2
domain2.com
タイプA
52.108.XX.YY

ホストゾーン
app.domain1.com
タイプA
52.108.XX.YY

さらに、VirtualHostタグのhttp.confファイルに次のコードを追加しました。

<VirtualHost *:80>   
     ServerName domain1.com   
     DocumentRoot "/var/www/html/domain1"   
     ErrorLog "logs/domain1-error_log"  
     CustomLog "logs/domain1-access_log" common  
     </VirtualHost>

     <VirtualHost *:80>   
     ServerName domain2.com   
     DocumentRoot "/var/www/html/domain2"  
     ErrorLog "logs/domain2-error_log"  
     CustomLog "logs/domain2-access_log" common  
     </VirtualHost>

     <VirtualHost *:80>  
     ServerName app.domain1.com   
     DocumentRoot "/var/www/html/app"  
     ErrorLog "logs/app.domain1-error_log"  
     CustomLog "logs/app.domain1-access_log" common  
     </VirtualHost>

ただし、domain1.comとdomain2.comのみが解決されます。 app.domain1.comにアクセスすると、「サーバーが見つかりません」というエラーが表示されます。サブドメインの設定方法を教えてください-ホストゾーンの設定またはhttpd.confに問題がありますか?

6
pradyotghate

さて、さまざまなサイトを読んでいじくり回してから約2時間後、私はすべて準備が整いました。これを行う方法は次のとおりです。

基本的に、ドメイン名ごとに複数のホストゾーン(HZ)を設定しないでください。そうしないと、状況が実際に悪化します。ドメイン名に複数のHZがある場合は、サブドメイン用に作成されたHZを削除してください。

各HZには4つのレコードがあります-

デフォルトでは、次の2つのレコードが作成されます。それらを編集/削除しないでください。
[〜#〜] ns [〜#〜]-これはネームサーバーレコードです。 AWS Route53がレジストラでない場合は、ns-servernumber.awsdns-number.com.と他の3つ(合計4つ)のレコードを使用して、レジストラのネームサーバーを変更します。
[〜#〜] soa [〜#〜]-このレコードを。これには触れないでください。

次の2つのレコードセット(青いボタン)を作成します。
[〜#〜] a [〜#〜]-名前を空白のままにします。 TypeA-IPv4 addressを選択します。 Valueに、Elastic LoadBalancerまたはEC2インスタンスのIPアドレスを入力します。
[〜#〜] cname [〜#〜]-nameフィールドに*(アスタリスク/ワイルドカード)を追加します。 TypeのドロップダウンからCNAMEを選択し、Valueにドメイン名を入力します。

次に、http.confファイルを作成し、質問のように仮想ホストを構造化します。

物事は今うまくいくはずです:)

4
pradyotghate

このリンクのチュートリアルに従うことができます: http://brianshim.com/webtricks/Host-multiple-sites-Amazon-ec2/

リンクによると、一般的なエラーは次のとおりです。

それは機能しましたか?そうでない場合、考えられる原因の1つがここにあります。これを妨害する別の構成ファイルがある可能性があります。 /etc/httpd/conf.dで別の.confファイルを確認します。多くの場合、プライマリhttpd.confには、このディレクトリに別の.confファイルが含まれます。干渉している仮想ホスト設定がないことを確認してください。

構成を設定したら、次を実行する必要があります。

Sudo service httpd restart
1
filipebarretto

これは、AWS-EC2インスタンスにApache HTTP Serverをインストールして実行できます。 Amazonian によって提案されているように、DNSまたはサブDNSごとにVirtualHostを構成します

簡潔にするために、これを読んでください thread ディスカッション、この公式 example および techrepublic post


これがお役に立てば幸いです。

0
Nirus