Перенаправить ssl-порт 443 Apache на http-порт Tomcat

У меня мой tomcat работает как автономный в моем Linux-окне на порту 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.


person Himanshu    schedule 16.11.2018    source источник
comment
Почему нельзя просто использовать 443 в приложении?   -  person elken    schedule 16.11.2018
comment
попробуйте переместить директивы ProxyPass внутри VirtualHost   -  person Eugène Adell    schedule 16.11.2018


Ответы (1)


Два шага:

1 Сначала подтверждаем, что с вашим Tomcat все в порядке.

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

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

<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 сообщит вам, если вы что-то упустили.
person Nic3500    schedule 16.11.2018