Назад | Перейти на главную страницу

Node.js с Apache, тот же IP, разные порты. Конфигурация виртуального хоста нарушает нормальный доступ Apache (сайт на 80)?

У нас есть клиенты, которые не хотят открывать порт 3000 на своем брандмауэре, и наше приложение использует этот порт для Node.js.

Пытался найти способ перенаправить трафик порта 3000 (node.js), чтобы мы могли запустить наш сайт только с использованием доменного имени. Мы также запускаем Apache на том же компьютере. Ubuntu на AWS.

Сейчас он в основном работает, но мне не хватает небольшой части головоломки: теперь он работает с перенаправлением порта 3000 на узел, но я думаю, что, включив это, я как-то испортил обычный трафик, работающий в корне apache. (80 и 443 больше не отправляются в apache.) При использовании 3000 узел отвечает ожидаемым образом как в http, так и в https.)

ПЕРЕД этим изменением мы бы протестировали узел следующим образом:

app.company.net:3000/api/test (https)

и он вернется:

'{"status": 401, "message": "Invalid Token or Key"}', что ожидается

Текущая проблема:

Я установил и настроил mod_proxy в apache, и мое перенаправление в моем файле httpd.conf выглядит так:

<VirtualHost *:80>
ServerName app.company.net
ProxyPreserveHost on
ProxyPass / http://localhost:3000/
</VirtualHost>

Если я прокомментирую вышеизложенное, произойдет обратное. Apache обслуживает все, но я не могу заставить узел ответить, не добавив: 3000 к URL-адресу.

Также пробовал закомментировать ВСЕ вышеперечисленное и возиться с mod_rewrite, но это собственная кроличья нора. Не повезло после нескольких часов возни с этим. Я продолжаю получать ошибки из-за того, что / api / test не существует на сервере. Хотя, вероятно, это должен быть еще один билет.

Что я делаю не так?

Спасибо!