Apache2 Proxy и NodeJS - PullRequest
       108

Apache2 Proxy и NodeJS

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

Я сделал проект с NodeJS, который работает нормально. Теперь я хотел развернуть его на веб-сервере с установленным Apache2 и попытался настроить Apache2 как прокси-сервер, который перенаправляет все в мое приложение.

Вот мой конфигурационный файл:

<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerName example.com
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        SSLEngine On
        SSLCertificateKeyFile <PATH/TO/KEY>
        SSLCertificateFile <PATH/TO/CRT>

        ProxyRequests Off

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

        <Location /app>
                ProxyPass http://127.0.0.1:8081/
                ProxyPassReverse http://127.0.0.1:8081/
        </Location>

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

</VirtualHost>
</IfModule>

Но яесть некоторые проблемы:

NodeJS прослушивает порт 8081 с помощью экспресс. Маршруты не знаю ни одного "/ app". Поэтому, если я изменю

<Location /app>
        ProxyPass http://127.0.0.1:8081/
        ProxyPassReverse http://127.0.0.1:8081/
</Location>

на

<Location />
        ProxyPass http://127.0.0.1:8081/
        ProxyPassReverse http://127.0.0.1:8081/
</Location>

, все будет в порядке. Но в этом случае все запросы будут перенаправлены в приложение.

Если я сохраню

<Location /app>
        ProxyPass http://127.0.0.1:8081/
        ProxyPassReverse http://127.0.0.1:8081/
</Location>

, мой браузер перенаправит меня с example.com / app на example.com и больше ничего не работает.

Что я хочу сделать, чтобы:

-) Пересылать все запросы example.com/app на http://127.0.0.1:8081/

-) Сохраните URL-адрес браузера, например, example.com/app, и добавьте конечные точки после «/ app», например, example.com/app/login перенаправляется на http://127.0.0.1:8081/login

Я много чего пробовал(даже те, которые не имеют эффекта по определению), но я не знаю, что я упустил, чтобы заставить его работать.

...