Приложение Apache2 и node.js работают одновременно на веб-сервере - PullRequest
0 голосов
/ 06 марта 2019

Я хотел бы одновременно запустить apache2 и приложение node.js на моем веб-сервере. Мне бы хотелось, чтобы на моем веб-сайте www.example.com/myApp запускалось мое приложение (через прокси-сервер с порта 8080), а все остальное на www.example.com/* запускалось apache (обычно на порту 80). Я прочитал пару вопросов по этому поводу в StackOverflow, но не смог заставить его работать должным образом.

Я использую

yarn start --port 8080 --host 0.0.0.0 --disable-host-check

чтобы запустить мое приложение.

Для этого я менял значения в своем файле apache.conf на моей виртуальной машине Ubuntu 18.04. Я запускаю мое приложение с пряжей.

Я включил

sudo a2enmod proxy && sudo a2enmod proxy_http

и у меня есть следующие строки в моем конфигурационном файле:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
ServerName example.com
ProxyPreserveHost On
ProxyRequests Off

Если я добавлю

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

в мой файл apache.conf, приложение успешно работает на www.example.com . Однако я могу получить доступ к каталогам только из папки, в которой установлено / работает приложение. Я не могу получить доступ к каталогам apache.

Если вместо этого я добавлю

ProxyPass /myApp/ http://localhost:8080/
ProxyPassReverse /myApp/ http://localhost:8080/

тогда приложение запускается на www.example.com / myApp , что то, что я хотел, но оно больше не работает правильно, , и я не знаю почему. Любой другой URL на сайте указывает на мой apache dir (/ var / www / html), который также является тем, что я хотел.

Приложение всегда правильно работает на localhost: 8080.

У меня нет опыта работы с этими вещами, и мне кажется, что я действительно близок ко второму решению, но я, должно быть, что-то упускаю, так как приложение перестает работать правильно.

1 Ответ

0 голосов
/ 07 марта 2019

Мне удалось решить проблему с этой конфигурацией:

ProxyPass /index.html http://0.0.0.0:8080/
ProxyPassReverse /index.html http://0.0.0.0:8080/

ProxyPass /config http://0.0.0.0:8080/config/
ProxyPassReverse /config http://0.0.0.0:8080/config/
ProxyPass /css http://0.0.0.0:8080/config/
ProxyPassReverse /css http://0.0.0.0:8080/config/
...

, поэтому, создав прокси-передачу в файл index.html и добавив прокси для всех подпапок в папке приложения.Я помогал себе с такими вопросами, как это и это .

...