Обратный прокси-сервер Apache для Node Sever - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть сервер на основе Apache, работающий на https://example.com, и внутри него приложение узла, работающее на порту 3000. Однако запросы могут быть успешно отправлены на https://example.com:3000, однако, поскольку я планирую запустить несколько приложений, я быхотел бы настроить обратный прокси-сервер для разных приложений. Для этого я добавил следующие строки в файл конфигурации apache:

<VirtualHost *:80>
    ServerAdmin foo@example.com
    ServerName example.com

    ProxyRequests off

    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>

    <Location /myapp1>
            ProxyPass http://localhost:3000
            ProxyPassReverse http://localhost:3000
    </Location>

    <Location /myapp2>
            ProxyPass http://localhost:3010
            ProxyPassReverse http://localhost:3010
    </Location>

</VirtualHost>

Этот подход не работает, так как запросы к https://example.com/myapp1 ничего не возвращают.

Обновление

После некоторой отладки я обнаружил, что файл .conf фактически был включен в тег <VirtualHost>, который вызывал ошибку (вложенный <VirtualHost> тегов). Теперь у меня просто следующее:

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

<Location /myapp1>
   ProxyPass http://127.0.0.1:3000
   ProxyPassReverse http://127.0.0.1:3000
</Location>
<Location /myapp2>
   ProxyPass http://127.0.0.1:3010
   ProxyPassReverse http://127.0.0.1:3010
</Location>

Теперь, когда я нажимаю https://example.com/myapp1, я получаю Not Found - 500 Internal Server Error. Который хотя бы показывает, что маршрутизация распознается. Есть идеи, как продолжить процесс отладки?

Есть идеи, как его правильно настроить

1 Ответ

0 голосов
/ 14 октября 2019

Мне наконец удалось исправить мою проблему на прошлой неделе. В моей конфигурации обратного прокси отсутствовала следующая строка кода:

SSLProxyEngine on

Спасибо за помощь.

...