Rya*_*yan 6 ssl virtualhost apache-2.2
我在端口 443 上有一个基于名称的虚拟主机设置,以便将主机“apple.fruitdomain”上的请求代理到 apple-app,将主机“orange.fruitdomain”上的请求代理到 orange-app。这是有效的,但我想为每个添加一个 ServerAlias,以便将主机“apple”上的请求代理到 apple-app,将主机“orange”上的请求代理到 orange-app。如果我只是将 ServerAlias 指令添加到虚拟主机,则它不起作用。ssl.conf 如下:
Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
ServerName apple.fruitdomain
ServerAlias apple
SSLProxyEngine on
ProxyPass /apple-app https://localhost:8181/apple-app
ProxyPassReverse /apple-app https://localhost:8181/apple-app
...
</VirtualHost>
<VirtualHost *:443>
ServerName orange.fruitdomain
ServerAlias orange
SSLProxyEngine on
ProxyPass /orange-app https://localhost:8181/orange-app
ProxyPassReverse /orange-app https://localhost:8181/orange-app
...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我使用端口 80 进行类似的设置,那么 ServerAlias 可以工作...
好吧,从我的测试来看,在 Apache 2.2.15 的端口 443 上使用基于名称的虚拟主机时,ServerAlias 指令似乎被忽略了。这可能是由于特殊的 SNI 协议要求(SNI-维基百科;SNI-Apache Wiki)。解决方法是创建两个独立的虚拟主机;在我的示例中,一个将具有 ServerName orange.fruitdomain,另一个将具有 ServerName orange。
归档时间: |
|
查看次数: |
7377 次 |
最近记录: |