Я использую 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-адреса)?
Наличие дополнительного VirtualHost не требует нового общедоступного IP-адреса; ваш подстановочный сертификат (я полагаю?) будет действителен для слушателя нового сервера синхронизации.
Apache с радостью выдаст предупреждение, когда вы установите NameVirtualHost *:443
директиву, но использование заголовков хоста через SSL-соединение будет работать нормально. Дайте вашему существующему VirtualHost подстановочный знак ServerAlias
и убедитесь, что он загружается первым.
Затем вы можете подключить свой второй VirtualHost к тому же IP (с ServerName
который дает ему запросы к серверу мобильной синхронизации).