Apache ReverseProxy не работает с Node и SSL - PullRequest
0 голосов
/ 02 февраля 2020

Я пытаюсь настроить приложение на HTTPS на веб-сервере. У меня есть действующий сертификат, установленный на моем хосте InMotion с использованием AutoSSL. У меня есть приложение узла, запущенное на моем сервере Centos через порт 3000, и мой apache сервер SSL, работающий на порту 443. Для маршрутизации запросов на мой веб-сайт я пытаюсь создать обратный прокси-сервер. Я создал файл с именем default-site.conf, который хранится в /etc/http.d/conf.d и имеет следующее содержимое:

<VirtualHost _default_:443>
    SSLProxyEngine on

    ServerName example.com
    ServerAlias www.example.com 

    ProxyRequests Off
    ProxyPreserveHost On
    ProxyVia Full
    <Proxy *>
      Require all granted
    </Proxy>

    ServerAdmin info@example.com
    DocumentRoot /home/USER/my-app/public

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    SSLCertificateFile  /home/USER/ssl/certs/certificate.crt
    SSLCertificateKeyFile /home/USER/ssl/keys/certificate.key


    ProxyPass / https://example.com:3000/
    ProxyPassReverse / https://example.com:3000 /

    <Directory "/home/USER/my-app/public">
        AllowOverride All
    </Directory>        

</VirtualHost>

Подчеркну, что приложение доступно на http://example.com:3000 (небезопасно), но когда я пытаюсь go до https://example.com (безопасный) Я получаю свой пустой индекс. html с ошибкой 404:

[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (index.js, line 0)

1 Ответ

0 голосов
/ 02 февраля 2020

Мне удалось решить эту проблему, полностью упростив мою конфигурацию до следующих двух строк:

ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/

Возможно, это не самый гибкий подход, но он перенаправляет трафик c так, как мне нужно быть направленным, поэтому для моих целей это работает.

...