Tomcat http servlet:getHeader(“ Host”)与getServerName()

时间:2019-03-04 10:07:04

标签: servlets

我正在研究从多个域提供服务的Tomcat应用程序。现有的servlet请求方法'request.getServerName()'返回服务器名(在请求URL中),该服务器名适当地从httpd.conf文件中返回默认的SERVER名称。

但是,我们需要在Virtualhost标记中获取Serveralias名称或服务器名称。 我想要的是浏览器向其发送请求的主机名,即浏览器或客户端用于访问该应用程序的域。

我尝试了request.getHeader(“ Host”),但是仍然返回ServerName(httpd.conf文件中的默认Servername) 我应该使用什么来获取浏览器向其发送请求的服务器名称? 我发现启用VirtualHost标记内的标志'ProxyPreserveHost On'会将服务器名称保留在请求标头Iff中,安装程序使用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配置。请给我建议。

0 个答案:

没有答案