如何为 AWS EC2 Ubuntu 实例设置子域?

如何为 AWS EC2 Ubuntu 实例设置子域?

我正在尝试为我的AWS EC2 Ubuntu 实例,但没有足够的知识,我无法继续下去。

  1. 我有一个停放域名示例.com在域名服务提供商上。
  2. 我的 EC2 实例有弹性 IP相关,说10.10.10.10
  3. 我在域名服务提供商的网站上创建了两个A记录。

    www.example.com 指着10.10.10.10

    示例.com 指着10.10.10.10

  4. 一切都运行正常,我可以使用域名访问我的实例。

但现在我想子域名为了个人网站/服务例如,说webmail.example.com数据库.example.com

我尝试为子域名设置虚拟主机文件,但当我访问这些子域名时它不起作用,chrome 说“糟糕!Google Chrome 找不到 subdoamin.example.com

问:我的问题是,如何为我的服务器设置子域?

提前致谢。

答案1

目前为止最简单的方法是创建一个通配符 DNS 记录例如.com. 例如

*.example.com. 14400 A 10.10.10.10

或 CNAME

*.example.com CNAME example.com.

请记住,Apache 将提供第一个虚拟主机的内容,其服务器名称或者服务器别名匹配主机:标头在 http 请求中。如果这些都不匹配,则将提供定义的第一个 vhost 的内容,因为它被视为默认 vhost。

要获取 Apache 服务器内容,最简单的方法是使用基于名称的虚拟托管。

如果要从每个虚拟主机提供相同的内容,则只需定义一个

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/html
    ...
</VirtualHost>

如果你想提供来自 sub1.example.com 和 sub2.example.com 的不同(但相同)的内容,那么你可以这样做

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName sub1.example.com
    ServerAlias sub2.example.com
    DocumentRoot /var/www/sub1sub2
    ...
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/html
    ...
</VirtualHost>

等等。

如果你需要设置和配置多个虚拟主机,你可能需要看看 Apache 的动态配置的海量托管文档。

相关内容