如何在单个AWS EC2实例上托管多个域和子域

时间:2016-07-18 15:23:50

标签: apache amazon-web-services amazon-ec2 httpd.conf amazon-route53

我正在尝试在AWS中使用一些子域(app.domain1.com)设置2个域(domain1.com和domain2.com),并在单个实例(Amazon Linux,PHP,MySQL)上运行它们。

我在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

此外,我已将以下代码添加到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时,它给了我一个&#34;找不到服务器&#34;错误。请帮助如何设置子域 - 托管区域设置或httpd.conf中是否存在问题?

3 个答案:

答案 0 :(得分:4)

好的,所以经过大约2个小时的阅读各种网站和修补,我已经准备好了。以下是如何做到这一点。

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

每个HZ将有4条记录 -

  

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

     

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

现在创建http.conf文件并构建我在问题中的虚拟主机。

事情现在应该有效:)

答案 1 :(得分:1)

您可以按照此链接上的教程进行操作:http://brianshim.com/webtricks/host-multiple-sites-amazon-ec2/

根据链接,常见错误是:

  

有效吗?如果没有,这是一个可能的原因。可能有   另一个配置文件干扰了这个。检查   /etc/httpd/conf.d中的另一个.conf文件。通常是你的主要   httpd.conf将在此目录中包含另一个.conf文件。使   确定它没有一些干扰的虚拟主机设置   和你的一起。

设置配置后,应运行:

sudo service httpd restart

答案 2 :(得分:0)

可以在 AWS-EC2 实例上安装 Apache HTTP Server 并为每个DNS或Sub-DNS配置 VirtualHost ,如下所示: Amazonian

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

希望这有帮助!