Apache多个VirtualHost .conf文件

时间:2018-02-19 02:18:15

标签: apache2

我必须对Apache的VirtualHost格式和.conf文件产生误解。我想做的是运行N>单个主机上有1个独立站点,每个站点完全包含在Docker容器中(经典的微服务架构)。在主机本身(运行Apache)上,我想创建一个简单的登录页面,其中包含指向所有这些不同站点的链接(即http://localhost/转到登录页面,http://localhost/site1转到一个站点, http://localhost/site2转到其他网站等。

第一个站点(RocketChat,由主机端口8081上的Docker提供)在rocketchat.conf中有以下文本:

<VirtualHost *:80>
    ProxyPreserveHost on
    ProxyRequests off
    ServerName localhost
    ProxyPass /chat http://localhost:8081/
    ProxyPassReverse /chat http://localhost:8081/
</VirtualHost>

我将此文件放在etc / apache2 / sites-available /中,运行a2ensite,然后重新加载apache。一切都很完美,http://localhost给了我默认的Apache站点,http://localhost/chat给了我RocketChat。

我尝试以完全相同的方式部署第二个站点Xowa(主机端口8082上的Docker服务)。这是xowa.conf:

<VirtualHost *:80>
    ProxyPreserveHost on
    ProxyRequests off
    ServerName localhost
    ProxyPass /xowa http://localhost:8082/
    ProxyPassReverse /xowa http://localhost:8082/
</VirtualHost>

我启用了网站并重新加载了Apache,但不幸的是,这并不起作用。如果我键入http://localhost:8082,我可以访问Xowa,但是http://localhost/xowa只返回404.更奇怪的是,如果我在Apache上禁用了rocketchat.conf站点(即我做了a2dissite rocketchat.conf)那么Xowa网站运行良好。

我不太清楚如何理解这一点:Apache是​​否认为rocketchat.conf VirtualHost应该处理请求,然后它会丢弃它,因为它与正确的ProxyPass不匹配?我认为Apache只会在列表中排在第34位。直到找到匹配。这里的任何建议/解释都会非常感激,我对Apache配置相对较新,并且很乐意学习。谢谢!

0 个答案:

没有答案