развернуть angular универсальный на apache сервере - PullRequest
0 голосов
/ 15 января 2020

Я написал проект 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 универсальному «реальному развертыванию» , и я нахожу некоторые трудности.

Мои шаги:

  1. вкл локальный компьютер -> npm run build:ssr && npm run serve:ssr
  2. загрузка dist folder на домене c сервер root (полный путь - var / www/xxx.dlinkddns.com/web/dist)
  3. на сервере Domesti c -> node dist/server.js (прослушивать порт 4040)
  4. на домене c сервер -> pm2 start dist/server.js

Затем мне нужно настроить Apache на моем домене c сервер:

  1. проверить, включен ли mod_rewrite -> a2enmod rewrite
  2. включить все модули, необходимые для обратного прокси -> a2enmod proxy, a2enmod proxy_http, a2enmod proxy_balancer, a2enmod lbmethod_byrequests
  3. добавьте .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)

Я понимаю, что моя проблема касается конфигурации сервера, и я хотел бы получить некоторую помощь Чтобы решить эту проблему.

Любая помощь будет признательна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...