Я написал проект Angular, используя Universal (angular cli с express) для целей SEO. На localhost все работает нормально (прослушивание на порту 4040, в моем случае). Теперь мне нужно развернуть приложение на «удаленном» сервере. Я следовал различным руководствам и советам по настройке своей среды, но пока не нашел исчерпывающей и полной документации для этого.
Для тестирования вымышленных целей я настроил сервер Domesti c (Ubuntu 18.04.3 TLS, LAMP) с VirtualBox, настройте мой маршрутизатор D-link с DDNS (служба dlinkddns) для доступа к серверу за пределами моей локальной сети. Затем на моем сервере c настроен Node
и pm2
для поддержки службы.
Теперь я хочу развернуть basi c angular Universal для понимания механизм . Это мой первый подход к Angular универсальному «реальному развертыванию» , и я нахожу некоторые трудности.
Мои шаги:
- вкл локальный компьютер ->
npm run build:ssr && npm run serve:ssr
- загрузка
dist folder
на домене c сервер root (полный путь - var / www/xxx.dlinkddns.com/web/dist) - на сервере Domesti c ->
node dist/server.js
(прослушивать порт 4040) - на домене c сервер ->
pm2 start dist/server.js
Затем мне нужно настроить Apache на моем домене c сервер:
- проверить, включен ли mod_rewrite ->
a2enmod rewrite
- включить все модули, необходимые для обратного прокси ->
a2enmod proxy, a2enmod proxy_http, a2enmod proxy_balancer, a2enmod lbmethod_byrequests
- добавьте .htaccess в тот же каталог, где находится индекс. html находится (см. Здесь: Развертывание сборки prod в Apache 2 ) ->
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.html [L]
</IfModule>
Итак, моя структура каталогов следующая:
web/
dist/
browser/
.htaccess
index.html
...
server/
server.js
открыть /etc/apache2/sites-enabled/000-default.conf
и добавить следующее:
<Directory "/var/www/xxx.dlinkddns.com">
AllowOverride All
</Directory>
service apache2 restart
После этого все равно не работает .
Чего я хочу добиться, так это найти способ на прокси-порт 4040 на 80-м порту и дойти до моего dist / browser foder для рендеринга приложения ssr (набрав xxx.dlinkddns.com)
Я понимаю, что моя проблема касается конфигурации сервера, и я хотел бы получить некоторую помощь Чтобы решить эту проблему.
Любая помощь будет признательна.