我们在同一网络中有两个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
答案 0 :(得分:2)
如果我理解正确,您有2个Apache Web服务器,其中包含2个不同的域名,您希望将它们连接到同一个Hybris Tomcat。
如果这是正确的,那么您唯一需要配置的是配置Hybris网站网址映射以捕获所有必需的域名。
关于代理名称,来自Tomcat 7文档:
代理名称:如果在代理配置中使用此连接器, 配置此属性以指定要为其返回的服务器名称 调用request.getServerName()。请参阅代理支持了解更多信 信息。
如果您必须配置Tomcat以匹配具有不同主机的不同域名,请查看the host container。