Переадресация двух веб-серверов https и http-запросов на один сервер Hybris Tomcat
У нас есть два веб-сервера apache 2.4.6 и один сервер hybris tomcat 7 в одной сети. Мне нужно настроить веб-серверы с помощью mod_proxy для пересылки запросов http и https на сервер hybris, и веб-серверы имеют разные доменные имена. Мой вопрос заключается в том, как настроить 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
<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 ответ
Если я правильно понимаю, у вас есть 2 веб-сервера Apache с двумя разными доменными именами, которые вы хотите подключить к одному и тому же Hybris Tomcat.
Если это правильно, то единственное, что вам нужно настроить, это настроить отображение URL-адреса веб-сайта Hybris, чтобы перехватить все необходимые доменные имена.
Также про имя прокси, из документации Tomcat 7:
Имя прокси: если этот Коннектор используется в конфигурации прокси, настройте этот атрибут, чтобы указать имя сервера, которое будет возвращено для вызовов request.getServerName(). Смотрите Proxy Support для получения дополнительной информации.
Если вам нужно было настроить Tomcat для сопоставления разных доменных имен с разными хостами, взгляните на контейнер хоста.