我正在尝试为我的AWS EC2 Ubuntu 实例,但没有足够的知识,我无法继续下去。
- 我有一个停放域名示例.com在域名服务提供商上。
- 我的 EC2 实例有弹性 IP相关,说10.10.10.10
我在域名服务提供商的网站上创建了两个A记录。
www.example.com 指着10.10.10.10
示例.com 指着10.10.10.10
- 一切都运行正常,我可以使用域名访问我的实例。
但现在我想子域名为了个人网站/服务例如,说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 的动态配置的海量托管文档。