Amazon ec2 - WildCard 子域名

Amazon ec2 - WildCard 子域名

我在运行 lamp stack 的 ubuntu 上运行一个 ec2 实例。我配置了我的 httpd.conf 文件以支持通配符子域,但它不起作用。

我的 httpd.conf 文件

 NameVirtualHost *

 <VirtualHost *>
    DocumentRoot /www/example
    ServerName example.com
    ServerAlias *.example.com
</VirtualHost>

我尝试了所有可能的解决方案,但都没有奏效。最后,我使用 amazon Route-53 设置通配符 DNS,将所有 *.example.com 重定向到 example.com。我的问题是,

  1. 如果我使用 Route-53 而不是 httpd.conf 文件作为通配符子域可以吗?
  2. 我的 httpd.conf 文件中有错误吗?(笔记:我与另一家托管服务提供商使用了相同的 httpd.conf 设置,并且它在那里运行良好。)

附加信息 :

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server example.com (/etc/apache2/httpd.conf:1)
         port 80 namevhost example.com (/etc/apache2/httpd.conf:1)
         port 80 namevhost ip-xx-xxx-xx-xxx.ec2.internal (/etc/apache2/sites-enabled/000-default:1)
Syntax OK 

答案1

没有“代替”——要使通配符域名发挥作用,您需要两者。

  • 名称解析需要将客户端发送到提供内容的正确主机
  • 您的网络服务器必须回答针对其所接收域的请求。

由于您现在已经有了通配符 DNS,并且您的 Apache 服务器应该使用该虚拟主机响应所有请求(是的,它是正确的),那么它应该可以正常运行。

首先,验证您的客户端系统是否解析了正确的名称;ping 通配符中的地址。添加通配符条目后,此操作不会立即起作用,因为 DNS(包括否定响应)被大量缓存。

如果访问了正确的服务器,则应验证是否使用了正确的虚拟主机来处理请求。您可能有其他虚拟主机正在接收请求 - 您能为我们提供输出吗apache2ctl -S

相关内容