3

我正在尝试在AWS中设置两个域(domain1.com和domain2.com)和几个子域(app.domain1.com),并在单个实例上运行它们(亚马逊Linux,PHP,MySQL)。如何在单个AWS EC2实例上托管多个域和子域

我已经在AWS Route53中设置了3个托管区域,并进行了以下配置。

托管区1:
domain1.com
A型
52.108.XX.YY

托管2区
domain2.com
A型
52.108。 XX.YY

托管3区
app.domain1.com
A型
52.108.XX.YY

此外,我已经添加以下代码的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中是否存在问题?

+1

您确定您的app.domain1.com解析为52.108.XX.YY,请尝试再次ping。 – error2007s

+0

你可以提供三个域名,以便我可以检查问题吗? – error2007s

+0

你是对的,它没有解决正确的IP地址。您是否认为我必须在Dreamhost(注册商)上添加子域名并为其提供NS Hosted Zone 3? – pradyotghate

回答

3

好了,约2个小时的阅读了各种网站和修补后,我所有的设置。这是如何做到这一点。

基本上,你不应该有一个托管区域(HZ)每个域名,否则事情真的会很糟糕。如果您的域名超过1个HZ,请删除为子域名创建的域名。

每个HZ将有4条 -

以下两个记录默认情况下被创建。不要编辑/删除它们。
NS - 这是名称服务器记录。如果AWS Route53不是您的注册商,请使用ns-servernumber.awsdns-number.com.和其他三个(共4个)记录更改注册商的名称服务器。
SOA - 让这个记录成为。不要触摸这个。

创建以下两个记录集(蓝色按钮)。
A - 请假姓名空白。选择A-IPv4 address类型。在中输入Elastic Load Balancer或EC2实例的IP地址。
CNAME - 在名称字段中添加*(星号/通配符)。从下拉菜单中选择CNAME类型输入域名。

现在创建http.conf文件和结构虚拟主机,就像我在问题中所述。

事情现在应该工作:)

0

你可以按照这个链接教程:http://brianshim.com/webtricks/host-multiple-sites-amazon-ec2/

一个常见的错误,根据链接,方法是:

有用吗?如果不是,这是一个可能的原因。可能有另一个配置文件干扰这一个。在/etc/httpd/conf.d中检查 另一个.conf文件。 httpd.conf通常会在您的主目录 中包含另一个.conf文件。制作 确保它没有一些虚拟主机设置与您的设备冲突 。

在您设置的配置,你应该运行:

sudo service httpd restart 
+0

这不是他已经这样做的答案。 – error2007s

+0

感谢分享分享文章。阅读。但它看起来像一条路线53前的文章。它规定直接将域名指向IP地址,这不是AWS推荐的做法,因为它将来无法使用Elastic Load Balancer进行扩展。 需要使用Route 53管理NS的这项工作的指导。 – pradyotghate

+0

没有其他虚拟主机设置文件。重新启动Apache。 – pradyotghate

0

这是可以做到的AWS-EC2实例安装Apache HTTP服务器和配置虚拟主机每个DNS或次DNS由Amazonian

的建议

为简洁起见,请阅读thread讨论,此官员exampletechrepublic post


希望这有助于!

相关问题