Я сделал проект с 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
Я много чего пробовал(даже те, которые не имеют эффекта по определению), но я не знаю, что я упустил, чтобы заставить его работать.