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に問題がありますか?
さて、さまざまなサイトを読んでいじくり回してから約2時間後、私はすべて準備が整いました。これを行う方法は次のとおりです。
基本的に、ドメイン名ごとに複数のホストゾーン(HZ)を設定しないでください。そうしないと、状況が実際に悪化します。ドメイン名に複数のHZがある場合は、サブドメイン用に作成されたHZを削除してください。
各HZには4つのレコードがあります-
デフォルトでは、次の2つのレコードが作成されます。それらを編集/削除しないでください。
[〜#〜] ns [〜#〜]-これはネームサーバーレコードです。 AWS Route53がレジストラでない場合は、ns-servernumber.awsdns-number.com.
と他の3つ(合計4つ)のレコードを使用して、レジストラのネームサーバーを変更します。
[〜#〜] soa [〜#〜]-このレコードを。これには触れないでください。次の2つのレコードセット(青いボタン)を作成します。
[〜#〜] a [〜#〜]-名前を空白のままにします。 TypeにA-IPv4 address
を選択します。 Valueに、Elastic LoadBalancerまたはEC2インスタンスのIPアドレスを入力します。
[〜#〜] cname [〜#〜]-nameフィールドに*(アスタリスク/ワイルドカード)を追加します。 TypeのドロップダウンからCNAME
を選択し、Valueにドメイン名を入力します。
次に、http.conf
ファイルを作成し、質問のように仮想ホストを構造化します。
物事は今うまくいくはずです:)
このリンクのチュートリアルに従うことができます: http://brianshim.com/webtricks/Host-multiple-sites-Amazon-ec2/
リンクによると、一般的なエラーは次のとおりです。
それは機能しましたか?そうでない場合、考えられる原因の1つがここにあります。これを妨害する別の構成ファイルがある可能性があります。 /etc/httpd/conf.dで別の.confファイルを確認します。多くの場合、プライマリhttpd.confには、このディレクトリに別の.confファイルが含まれます。干渉している仮想ホスト設定がないことを確認してください。
構成を設定したら、次を実行する必要があります。
Sudo service httpd restart
これは、AWS-EC2インスタンスにApache HTTP Serverをインストールして実行できます。 Amazonian によって提案されているように、DNSまたはサブDNSごとにVirtualHostを構成します
簡潔にするために、これを読んでください thread ディスカッション、この公式 example および techrepublic post 。
これがお役に立てば幸いです。