Я работаю над приложением Tomcat, которое обслуживается из нескольких доменов.Существующий метод запроса сервлета request.getServerName () возвращает имя сервера (в URL-адресе запроса), которое, соответственно, возвращает имя SERVER по умолчанию из файла httpd.conf.
Однако нам необходимо требованиечтобы получить имя Serveralias или имя сервера внутри тега Virtualhost.Мне нужно имя хоста, к которому браузер отправил запрос, т. Е. Какой домен браузер ИЛИ клиент использует для доступа к этому приложению.
Я пробовал request.getHeader ("Host"), но это все ещевозврат ServerName (имя сервера по умолчанию в файле httpd.conf). Что я должен использовать, чтобы получить имя сервера, на который браузер отправил запрос?Я обнаружил, что включение флага «ProxyPreserveHost On» внутри тега VirtualHost сохраняет имя сервера в заголовке запроса, если установка использует метод mod_proxy_http.Кажется, это приложение не использует mod_proxy_http, так как в теге Vhost нет значений ProxyPass и ProxyPassReverse.Содержимое, как показано ниже.
<VirtualHost *:*>
DocumentRoot /usr/local/apache/htdocs/EMPTY
ServerName xxx.yyy.com
RewriteEngine On
</VirtualHost>
Кажется, "ProxyPreserveHost On" не применяется для этой конфигурации, так как он не использует конфигурацию mod_proxy.Пожалуйста, посоветуйте мне.