Туннельный трафик Apache на другой порт с использованием.htaccess
У меня нет доступа к конфигурации виртуального хоста, и я пытаюсь настроить угловое универсальное приложение на сервере apache.
Домен установлен в папку "dist/browser". Приложение работает на порту 4201. Но я не могу понять (используя.htaccess), как туннелировать трафик от входящего порта 80 к порту 4201, где работает экспресс. И домен должен оставаться прежним.
Например, я перехожу на example.com:80 Apache перенаправляет на localhost:4201 В браузере example.com по-прежнему отображается
Мой.htaccess:
RewriteEngine On
RewriteRule (.*) http://127.0.0.1:4201/$1 [P]
Что дает мне:
Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Любая помощь приветствуется
1 ответ
Это ошибка, которую вы получите, если работаете в сети linux, а сервер apache, к которому вы пытаетесь подключить ваше угловое приложение, работает на другом хосте. Так что если вы ssh-ed в сеть с чем-то вроде yourname@HHH.DDD.com
и запустил там свое угловое приложение, тогда вам нужно убедиться, что "HHH" также является хостом, на котором работает сервер apache.
Примечание: как правило, пользователи сети linux будут иметь доступ к своему домашнему каталогу на любом хосте (поскольку домашние каталоги пользователей "монтируются в сети"), и именно поэтому apache может обслуживать файлы из вашего домашнего каталога независимо от его хост, но в случае углового приложения вы не хотите, чтобы apache обслуживал файл в вашем домашнем каталоге, скорее, вы хотите, чтобы apache подключился к порту на каком-либо хосте, на котором вы запускаете свое приложение, и apache не настроен для этого (как правило).
Вы можете подтвердить, что сервер Apache работает на вашем хосте, используя, например, ps -ef | grep "apache\|httpd"
, (Примечание: даже если на хост-компьютере запущен сервер apache, это может быть не тот сервер apache, к которому вы пытаетесь подключиться через браузер.) Если на хосте, с которого вы запускаете, не работает сервер apache. ваше угловое приложение (или если есть один, но это не тот сервер apache, к которому вы пытаетесь подключиться), тогда вам нужно сделать одну из двух вещей:
выясните, на каком хост-компьютере в вашей сети находится нужный сервер apache. Если вы не уверены, скорее всего (но не гарантировано) это будет хост, к которому вы придете, когда будете входить по ssh непосредственно в свой домен без указания имени хоста (yourname@DDD.com по схеме выше). Так что зайдите в этот хост и запустите ваше угловое приложение оттуда; теперь, когда сервер apache, к которому вы пытаетесь подключиться, находится на том же хосте, что и ваше угловое приложение, он может подключаться с IP-адресом 127.0.0.1 (то есть с локальнымхостом).
Оставайтесь на том же хосте и просто измените IP-адрес в вашем файле.htaccess с 127.0.0.1 ("localhost") на IP-адрес вашего хоста (
hostname --ip-address
на Linux). Теперь Apache проксирует ваш хост везде, где только может быть, и вы можете запустить свое угловое приложение там.