Переслать Apache SSA-порт 443 на http-порт Tomcat - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть tomcat, работающий как автономный в моем linux box на порту 7778. Я настроил apache для запуска на ssl на порту 443.

Мой httpd.conf выглядит следующим образом:

    Listen 80
<VirtualHost *:80>
    ServerName www.domain.com
    Redirect / https://www.example.com
</VirtualHost> -->
ProxyPass         /  http://localhost:7778/website
ProxyPassReverse  /  http://localhost:7778/website

Мой ssl.conf выглядит следующим образом:

Listen 443
<VirtualHost _default_:443>
SSLEngine on
SSLCertificateFile    /path/to/certificate/file
SSLCertificateKeyFile /path/to/key
</VirtualHost>

Мой коннектор server.xml выглядит следующим образом:

<Connector port="7778" protocol="HTTP/1.1"
                proxyName="www.domain.com" proxyPort="80" />

Проблема в том, что мой Apache не может перенаправить на Tomcat вПорт 7778 и выдает ошибку 503.

1 Ответ

0 голосов
/ 16 ноября 2018

Два шага:

1 Первые подтверждают, что ваш Tomcat в порядке.

Убедитесь, что вы можете подключиться к http://localhost:7778/website и получить ожидаемый ответ.

Затем для поддержки прокси измените ваш Connector:

<Connector port="7778" protocol="HTTP/1.1" proxyName="www.example.com" proxyPort="80" />

2 Исправление конфигурации Apache

Здесь я предполагаю:

  • при попытке http://www.example.com вы будете перенаправлены на https://www.example.com
  • при попытке https://www.example.com вы получите ответ от Tomcat

    Listen 80
    <VirtualHost *:80>
        ServerName www.example.com
        ServerAlias example.com
    
        CustomLog "logs/80_access.log" combined
        ErrorLog  "logs/80_error.log"
    
        Redirect / https://www.example.com
    </VirtualHost>
    
    <VirtualHost *:443>
        ServerName www.example.com
        ServerAlias example.com
    
        # While debugging
        LogLevel debug
        CustomLog "logs/443_access.log" combined
        ErrorLog  "logs/443_error.log"
    
        SSLEngine On
        SSLCertificateFile    /path/to/certificate/file
        SSLCertificateKeyFile /path/to/key
    
        # Proxy to Tomcat
        ProxyRequests Off
        ProxyPass        / http://localhost:7778/website
        ProxyPassReverse / http://localhost:7778/website
    
    </VirtualHost>
    

Что вам, возможно, придется настроить

  • Каталог файлов журнала
  • каталог файлов сертификатов
  • LogLevel, уберите режим отладки, как только он заработает
  • Убедитесь, что необходимые модули загружены. apachectl -t сообщит вам, если вы что-то упустили.
...