我正在尝试为我的AWS EC2 ubuntu实例设置子域,但是如果没有足够的知识我就再也无法继续了.
>我在域名服务提供商处有一个停放的域名example.com.
>我的EC2实例具有弹性IP关联,例如10.10.10.10
>我在域名服务提供商的网站上创建了两个A Recoards.
www.example.com指向10.10.10.10
example.com指向10.10.10.10
>一切都像魅力一样,我可以使用域名访问我的实例.
但是现在我希望为该实例提供单个网站/服务的子域名,例如webmail.example.com,database.example.com.
我尝试为子域设置虚拟主机文件,但是当我访问这些子域时它没有用,chrome说“哎呀!谷歌Chrome找不到subdoamin.example.com”
问:我的问题是,如何为我的服务器设置子域名?
提前致谢.
解决方法
到目前为止,最简单的方法是为example.com创建一个
wildcard DNS record.例如
*.example.com. 14400 A 10.10.10.10
或CNAME
*.example.com CNAME example.com.
请记住,Apache将提供第一个vhost的内容,其中ServerName或Serveralias与http请求中的Host: header匹配.如果这些都不匹配,则提供定义的第一个vhost的内容,因为它被视为默认vhost.
要获得服务器内容的apache,最简单的方法是使用NameBasedVirtual托管.
如果要从每个vhost服务相同的内容,则只需定义一个
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>
等等.
如果您有许多vhost进行设置和配置,您可能需要查看Apache的Dynamically configured mass hosting文档.