У меня нет доступа к конфигурации виртуального хоста, и я пытаюсь настроить универсальное приложение angular на сервере 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.
Любая помощь приветствуется
Это ошибка, которая возникает, если вы работаете в сети linux , а сервер apache, к которому вы пытаетесь подключить свое приложение angular, работает на другом хосте . Поэтому, если вы подключились к сети с помощью ssh-ed с чем-то вроде (hidden) и запустили там свое приложение angular, вам необходимо убедиться, что «HHH» также является хост-машиной, на которой работает сервер apache.
Дополнительное примечание: обычно пользователи в сети linux будут иметь доступ к своему домашнему каталогу на любом хосте (поскольку домашние каталоги пользователей «смонтированы в сети»), и поэтому apache может обслуживать файлы из вашего домашнего каталога. независимо от его хоста, но в случае приложения angular вы не хотите, чтобы apache обслуживал файл в вашем домашнем каталоге, скорее, вы хотите, чтобы apache подключался к порту на каком-то хосте, на котором вы запускаете свое приложение, и apache не настроен для этого (обычно).
Вы можете подтвердить, что сервер apache работает на вашем хосте, например, ps -ef | grep "apache \ | httpd"
. (Примечание: даже если на вашем хост-компьютере запущен сервер apache, это может быть не тот сервер apache, к которому вы пытаетесь подключиться из своего браузера.) Если на хосте, с которого вы запускаете, не запущен сервер apache ваше приложение angular (или, если оно есть, но это не тот сервер apache, к которому вы пытаетесь подключиться), вам нужно сделать одно из двух:
выяснить, на каком хост-компьютере в вашей сети есть желаемый сервер apache . Если вы не уверены, то скорее всего (но не гарантированно) это будет тот хост, на который вы попадете, когда вы будете использовать ssh прямо в своем домене без указания имени хоста (скрытого) в соответствии со схемой выше). Итак, подключитесь по ssh к этому хосту и запустите приложение angular с там ; Теперь, когда сервер apache, к которому вы пытаетесь подключиться, находится на том же хосте, что и ваше приложение angular, он может подключиться с IP-адресом 127.0.0.1 (то есть с локальным хостом ).
Оставайтесь на тот же хост, и просто измените IP-адрес в вашем файле .htaccess с 127.0.0.1 ('localhost') на IP-адрес вашего хоста ( hostname --ip-address
в Linux). Теперь apache проксирует ваш хост, где бы он ни был, и вы можете запустить свое приложение angular там.