我有一个名为dumbdom.com的域名。 我有一个名为my.ela.stic.ip AWS EC2实例的弹性IP。 我基于Linux的EC2实例的htdocs根目录是/var/www/html/ 。
我已经build立了/etc/httpd/conf.d/vhost.conf文件来指导域名dumbdom.com到/var/www/html/my_dumb_app/并且工作正常! vhost.conf文件如下所示:
NameVirtualHost * <VirtualHost *> ServerName dumbdom.com DocumentRoot /var/www/html/my_dumb_app </VirtualHost> <VirtualHost *> ServerName blog.dumbdom.com DocumentRoot /var/www/html/my_blog_directory </VirtualHost>
现在,我希望dumbdom.com & blog.dumbdom.com分别保持login到/var/www/html/my_dumb_app/ & /var/www/html/my_blog_directory ; 我也希望通过my.ela.stic.ip地址的其他一切简单地去正常的/var/www/html 。 所以去dumbdom.com去my.ela.stic.ip/my_dumb_app最终会在相同的位置登陆。
因为我的vhost.conf文件有dumbdom.com & blog.dumbdom.com <VirtualHost>标签,试图通过blog.dumbdom.com访问服务器的其他目录会导致404-NotFound错误。
谢谢
根据http://httpd.apache.org/docs/2.2/vhosts/name-based.html ,您可以为IP地址创build一个VirtualHost条目。
所以你会有类似的东西
<VirtualHost my.elas.stic.ip> ServerName my.elas.stic.ip DocumentRoot /var/www/html </VirtualHost>
另外请注意,第一个虚拟主机声明是默认的 – 这可能不会影响到您,但是任何通过实例外部IP或EC2实例域名访问您的实例的人都会得到任何优先权。
编辑:有几种方法来访问您的EC2实例。 首先,每个实例都有公有和私有IP地址,以及公有和私有DNS条目。 通过其中一个访问实例(即ec2-xxxxyamazonaws.com)将不会与任何主机名匹配,因此将select默认值。 在实例中重新启动时,在重新分配弹性IP地址之前,外部IP地址也会发生同样的情况。