Apache 在EC2实例上使用多个vhost的困难

Apache 在EC2实例上使用多个vhost的困难,apache,amazon-ec2,virtualhost,Apache,Amazon Ec2,Virtualhost,我承认我对虚拟主机的了解可能很粗略,但我正在承担一项我正在努力完成的任务。我将需要有两个域到达我的EC2实例上的两个不同文件夹;让我们把它们叫做domaina.com和domainb.com 我已经像这样设置了我的/etc/httpd/conf/httpd.conf文件 Listen 80 <VirtualHost *:80> DocumentRoot "/var/domaina/www/html" ServerName "domaina.com" Serve

我承认我对虚拟主机的了解可能很粗略,但我正在承担一项我正在努力完成的任务。我将需要有两个域到达我的EC2实例上的两个不同文件夹;让我们把它们叫做domaina.com和domainb.com

我已经像这样设置了我的
/etc/httpd/conf/httpd.conf
文件

Listen 80
<VirtualHost *:80>
    DocumentRoot "/var/domaina/www/html"
    ServerName "domaina.com"
    ServerName "www.domaina.com"
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/var/domainb/www/html"
    ServerName "domainb.com"
    ServerName "www.domainb.com"
</VirtualHost>
听80
DocumentRoot“/var/domaina/www/html”
服务器名“domaina.com”
服务器名“www.domaina.com”
DocumentRoot“/var/domainb/www/html”
服务器名“domainb.com”
服务器名“www.domainb.com”
更新后,我使用
sudo服务httpd restart
命令重新启动了Apache

据我所知,
domaina.com
工作正常。它正在加载位于/var/domaina/www/html的网站。但是,访问
domainb.com
会将我转到domaina.com的网站。它似乎不是路由到/var/domainb/www/html,而是路由到/var/domaina/www/html/

尝试将其更改为:

Listen 80
<VirtualHost *:80>
    DocumentRoot "/var/domaina/www/html"
    ServerName "domaina.com"
    ServerAlias "www.domaina.com"
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/var/domainb/www/html"
    ServerName "domainb.com"
    ServerAlias "www.domainb.com"
</VirtualHost>
听80
DocumentRoot“/var/domaina/www/html”
服务器名“domaina.com”
ServerAlias“www.domaina.com”
DocumentRoot“/var/domainb/www/html”
服务器名“domainb.com”
ServerAlias“www.domainb.com”

ServerName
指令可能出现在VirtualHost定义中的任何位置。但是,每个外观都会覆盖上一个外观(在该虚拟主机中)。您的
ServerName“domainb.com”
已被
ServerName“www.domainb.com”
覆盖。此后,由于主机名
domainb.com
不匹配,因此使用了默认的
VirtualHost
,这是最上面的一个

这绝对让我走得更远-谢谢!使用您的方法,我可以通过访问
domaina.com
访问
/var/domaina/www/html
的内容。话虽如此,当我访问
domainb.com
时,它会把我带到一个Apache测试页面,尽管
/var/domainb/www/html
有一个完整的站点和index.html文件。不确定为什么
domainb.com
没有引导我找到正确的文件,尽管它现在似乎确实正确地识别了虚拟主机。好的,您显示的配置非常简单,没有什么问题。。。您可以1)检查其他
.conf
文件中的任何其他
DocumentRoot
指令2)检查域B根文件夹中的任何
.htaccess
文件3)检查错误日志中是否有任何异常情况