我正在尝试正确设置 httpd.conf,但无论下面的子域/域组合如何,它们都解析为相同的内部 URL。
<Proxy *>
Order Allow,Deny
Allow from all
</Proxy>
ProxyRequests Off
<VirtualHost *:80>
Servername jira.firstfactoryinc.com
ProxyPreserveHost On
ProxyPass / http://localhost:8082/
ProxyPassReverse / http://localhost:8082/
</VirtualHost>
<VirtualHost *:80>
Servername jira.submitpatientforms.com
ProxyPreserveHost On
ProxyPass / http://localhost:8081/
ProxyPassReverse / http://localhost:8081/
</VirtualHost>
<VirtualHost *:80>
Servername mddev-jira.firstfactoryinc.com
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
我究竟做错了什么?
答案1
您需要一个与NameVirtualHost
您的定义相匹配的指令<VirtualHost>
,否则第一个<VirtualHost>
要加载的块将用于该端口上的所有请求(这与您所看到的相匹配,正确吗?)。
对于上述配置来说:
NameVirtualHost *:80
在VirtualHost
区块外面。 与您的Listen
指令并排放置是不错的选择。
答案2
您可能需要在每个 VirtualHost 中添加类似的内容,我这样做了:
<Proxy *>
Order Allow,Deny
Allow from all
</Proxy>
显然,可以进行修改以满足您的安全需求。
您可能还想添加:
ProxyRequests Off
它应该是默认的,但根据您的 Apache 版本和 mod_proxy 版本,可能会出现一些问题。