Angular2 универсальное развертывание на удаленном сервере apache

У меня возникла проблема при развертывании моего веб-приложения на удаленном сервере Apache. Мне удалось развернуть стандартное веб-приложение Angular2, которое использует службу RESTful API (написанную на PHP, размещенную в / public_html / api), выполнив следующие действия:

  1. Откройте командную строку в каталоге проекта, запустите ng build --prod
  2. Скопируйте все внутри каталога dist / на удаленный сервер / public_html /
  3. Скопируйте .htaccess файл из сюда в то же место на удаленном сервере.
  4. Веб-приложение и получение данных из RESTful API работают

Однако мне нужно интегрировать Angular2 Universal в проект, поэтому я выполнил инструкции в Angular Sever Side Rendering и эта вики GitHub. Но в конце концов, я могу интегрировать и запускать универсальный проект только на своей локальной машине с портом 4000, как показано в руководстве. Я не знаю, как правильно развернуть его на удаленном сервере Apache и настроить .htaccess файл. Это шаги, которые я предпринял, но не сработал, как я ожидал:

  1. На моем локальном компьютере запустите npm build..., чтобы создать папку dist /, в которой есть браузер /, папка server / и server.js файл.
  2. Скопируйте всю папку dist / в / public_html /
  3. Используя Putty, SSH на удаленный сервер и в каталоге public_html, я запускаю node dist/server.js
  4. Я получил журнал "Узловой сервер прослушивает http://localhost:4000"
  5. Затем я захожу в свой браузер и набираю http://my_server_ip:4000, но ничего не появляется. Браузер продолжает загружаться, и когда я открываю консоль F12 в Firefox, нет ошибок или каких-либо журналов.

Мне нужно интегрировать Angular2 Universal Server Side Rendering, потому что сканер Google не может индексировать мой веб-проект, он загружает данные только тогда, когда реальный пользователь заходит на сайт. Пожалуйста, помогите, спасибо!


person Sea    schedule 17.01.2018    source источник
comment
Когда вы говорите, что ничего не появляется, что именно вы имеете в виду? Вы получаете сообщение об ошибке в консоли браузера? Вы проверяли серверную часть логов? Ваш запрос даже доходит до веб-сайта?   -  person David    schedule 17.01.2018
comment
Извините, я имею в виду, что браузер продолжает загружаться или, возможно, пытается подключиться к порту сервера, ни на консоли, ни на стороне сервера нет ошибок или журнала. Я не уверен, что запрос дошел до сервера, потому что я забыл проверить сетевую консоль.   -  person Sea    schedule 17.01.2018
comment
Это не проблема межсетевого экрана? порт 4000 открыт на сервере? Обычно вы имеете в виду доступ к apache (порт 80), который будет проксировать запрос на nodejs на порт 4000.   -  person David    schedule 17.01.2018
comment
Привет, я проверил свой сервер Apache, и порт 4000 не слушает, даже после запуска node dist/server.js консоль вернулась с сервером узла, который слушал localhost: 4000. Я не знаю, были ли предпринятые мной шаги правильным способом развертывания проекта Angular2 Universal.   -  person Sea    schedule 17.01.2018
comment
Привет, @David, я думаю, что нашел здесь ответ (не знаю, что он не появился в первый раз, когда я ищу) stackoverflow.com/questions/47120385/. Думаю, теперь этот вопрос можно закрыть, спасибо.   -  person Sea    schedule 17.01.2018