我不想给出所有细节,但我试图通过 apache 设置两个 Web 应用程序,它们将由同一个(内部开发)服务器提供服务。目前我有两个VirtualHost
指令,两个应用程序在不同的端口上运行。相反,我想让 URL 确定使用哪个应用程序,因此,例如,myapp.domain.com
将转发到一个应用程序,而任何其他.domain.com
应用程序将转到另一个应用程序。设置内部 DNS 来处理这一部分不是问题。但我对 apache 不太熟悉,实现此目的的最佳方法是什么?
答案1
在 中,<VirtualHost>
您可以使用ServerName
;这是指示 Apache 处理针对该特定名称的请求的指令。您还可以使用ServerAlias
指定您希望VirtualHost
处理请求的其他域(以及更多域!)。
例如,你可以像这样设置指令
<VirtualHost ...>
ServerName foo.example.com
...
#Handle webapp1 in here
...
</VirtualHost>
<VirtualHost ....>
ServerName example.com
ServerAlias *.example.com
...
#Handle webapp2 in here
...
</VirtualHost>
Apache 文档中包含了针对大多数用例的几个非常好的示例(http://httpd.apache.org/docs/2.0/vhosts/examples.html)。您可能还对他们的“默认包罗万象页面中间,它基本上是针对任何与先前的指令不匹配的虚拟主机请求的总称。