我正在运行 Apache 作为 HTTPS 反向代理,其中许多真实主机通过单个 VirtualHost(单个公共 IP,通配符证书)代理,使用 mod_rewrite 和 mod_proxy。
基本上是这样的:
<VirtualHost *:443>
SSLEngine On
...
RewriteEngine On
RewriteCond %{SERVER_NAME} ^(server1|server2|server3)\.domain\.net$
RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [P] # Forward requests for listed servers
RewriteRule ^.*$ - [F] # Block anything else
</VirtualHost>`
现在我需要将超时设置为比默认值更大的值,但仅限于发往其中一个服务器(移动设备的同步服务器)的请求。
可以在不需要单独的 VirtualHost(因此也不需要另一个公共 IP)的情况下完成此操作吗?
答案1
拥有额外的 VirtualHost 并不需要新的公共 IP;您的通配符证书(我假设?)对于新的同步服务器的侦听器有效。
当您设置指令时,Apache 会很乐意发出警告NameVirtualHost *:443
,但通过 SSL 连接使用主机标头就可以正常工作。为现有的 VirtualHost 提供通配符ServerAlias
,并确保它首先加载。
然后,您可以将第二个 VirtualHost 连接到同一个 IP(使用一个 IP 地址,ServerName
向其提供对移动同步服务器的请求)。