将两个Web服务器https和http请求转发到单个hybris tomcat服务器

时间:2016-03-28 09:46:12

标签: apache tomcat mod-proxy hybris

我们在同一网络中有两个apache 2.4.6 web服务器和一个hybris tomcat 7服务器,我需要使用mod_proxy配置web服务器以将http和https请求转发到hybris服务器,并且web服务器具有不同的域名。我的问题是如何配置tomcat接受来自两个不同域名的请求,并且proxyName参数就足够了。以下是我的基本mod_proxy配置。

 LoadModule headers_module modules/mod_headers.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule ssl_module  modules/mod_ssl.so

<VirtualHost *:80>
DocumentRoot /var/www/html
ProxyPreserveHost On
ProxyPass / http://tomcatserver.ip:9001/
ProxyPassReverse /  http://tomcatserver.ip:9001/
</VirtualHost>

<VirtualHost *:443>
  DocumentRoot /var/www/html
   ProxyPreserveHost On
   ServerName webserver.ip
    SSLEngine on
    SSLProxyEngine On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off
    ProxyPass / https://tomcatserver.ip:9002/
    ProxyPassReverse /  https://tomcatserver.ip:9002

     SSLCertificateFile /etc/ssl/certs/webserverdomain.crt
     SSLCertificateKeyFile  /etc/ssl/certs/webserverdomain.key    
     </VirtualHost>

server.xml configuration

<Connector port="${tomcat.http.port}" maxHttpHeaderSize="8192" maxThreads="${tomcat.maxthreads}" protocol="org.apache.coyote.http11.Http11Protocol" executor="hybrisExecutor" enableLookups="false" acceptCount="100" connectionTimeout="20000" URIEncoding="UTF-8" disableUploadTimeout="true" proxyName="webserverdomainname" proxyPort="80" /> /> <Connector port="${tomcat.ssl.port}" maxHttpHeaderSize="8192" maxThreads="150" protocol="org.apache.coyote.http11.Http11Protocol" executor="hybrisExecutor" enableLookups="false" acceptCount="${tomcat.acceptcount}" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" SSLEnabled="true" proxyName="webserverdomainname" proxyPort="443" scheme="https" secure="true" clientAuth="false" sslProtocol = "TLS" keystoreFile="${catalina.home}/lib/keystore" keystorePass="123456"enter code here

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您有2个Apache Web服务器,其中包含2个不同的域名,您希望将它们连接到同一个Hybris Tomcat。

如果这是正确的,那么您唯一需要配置的是配置Hybris网站网址映射以捕获所有必需的域名。

关于代理名称,来自Tomcat 7文档:

  

代理名称:如果在代理配置中使用此连接器,   配置此属性以指定要为其返回的服务器名称   调用request.getServerName()。请参阅代理支持了解更多信   信息。

如果您必须配置Tomcat以匹配具有不同主机的不同域名,请查看the host container