Переадресация двух веб-серверов 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 для сопоставления разных доменных имен с разными хостами, взгляните на контейнер хоста.

Другие вопросы по тегам