У нас есть клиенты, которые не хотят открывать порт 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 не существует на сервере. Хотя, вероятно, это должен быть еще один билет.
Что я делаю не так?
Спасибо!
-П