Приложение Express / NodeJS на Cpanel - PullRequest
0 голосов
/ 02 января 2019

Хорошо, у меня есть приложение с Node / Express API, и все отлично работает на localhost.Я пытаюсь понять, как заставить все работать на CPanel, работающем на Apache.Клиентский материал, но я не могу получить какие-либо данные из резервной копии.Я искал и смотрел, да, но я все еще не совсем уверен, как подойти к этому.Нужно ли мне использовать виртуальный хост и, если да, какие конкретные шаги мне нужно сделать?

Ответы [ 2 ]

0 голосов
/ 02 января 2019

NodeJS не работает на Apache или Nginx. На этих веб-серверах вы можете установить обратный прокси-сервер.

NodeJS имеет собственный веб-сервер. cPanel не поможет вам в этом отношении, так как вам нужно только установить NodeJS на свой сервер (у вас должен быть SSH access-root) и запустить его оттуда. Вы можете демонизировать процесс Node, чтобы продолжить установку PM2 или Forever (пакеты NPM).

Вот хороший ответ (поищите, прежде чем спрашивать, к тому времени проблема может быть решена).

Запустите node.js на хостинг-сервере cpanel

cPanel обычно запускает Apache или другой веб-сервер, который используется всеми учетными записями cPanel / unix. Веб-сервер прослушивает порт 80. В зависимости от имени домена в запрошенном URL-адресе веб-сервер использует «Виртуальный хостинг», чтобы определить, какая учетная запись cPanel / unix должна обработать запрос, т. Е. В каком домашнем каталоге найти файлы для обслуживания. и скрипты для запуска. Если URL-адрес содержит только IP-адрес, cPanel должна по умолчанию использовать одну из учетных записей cPanel.

Обычно без корневого доступа задание, выполняемое учетной записью cPanel, не может прослушивать порт 80. Действительно, доступные порты могут быть довольно ограничивающими. Если 8080 не работает, вы можете попробовать 60000. Чтобы получить доступ к работающему серверу node.js, вам потребуется номер порта, который он прослушивает. Поскольку это единственное задание, прослушивающее этот порт на этом сервере, вы должны иметь возможность указать своему браузеру доменное имя любой из учетных записей cPanel или даже IP-адрес сервера, добавив номер порта к URL-адресу. Но обычно используется доменное имя для учетной записи cPanel, выполняющей задание node.js, например http://cPanelDomainName.com:60000/.

Конечно, порт 80 используется по умолчанию для веб-служб, и относительно немногие пользователи знакомы с необязательными номерами портов в URL-адресах. Чтобы упростить работу пользователей, вы можете использовать Apache для «обратного прокси-запроса» через порт 80 к порту, который прослушивает процесс node.js. Это можно сделать с помощью директивы Apache RewriteRule в файле конфигурации или .htaccess. Такое обратное проксирование запросов, возможно, имеет и другие преимущества, например, Apache может быть более безопасным, надежным и управляемым интерфейсом для работы в общедоступном Интернете.

К сожалению, эта настройка для node.js поддерживается не всеми веб-хостинговыми компаниями. A2Hosting.com - это одна хостинговая компания, которая поддерживает его, даже на его недорогих хостингах с общим доступом. У них также есть четко написанное описание процесса установки в их Базе знаний.

Наконец, стоит отметить, что разработчики cPanel работают над встроенной поддержкой node.js. «Если все звезды выровняются, мы можем увидеть эту землю, как только появится версия 68», то есть, возможно, в начале 2018 года.

Ссылки

Виртуальный хостинг Apache - http://httpd.apache.org/docs/2.4/vhosts/

Директива Apache RewriteRule - http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html

Статья базы знаний A2Hosting.com по настройке Node.js - https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed-hosting-accounts

Тема запроса функции cPanel для поддержки node.js - https://features.cpanel.net/topic/nodejs-hosting

Похожие вопросы по StackOverflow

Как разместить приложение Node.Js на виртуальном хостинге

Почему node.js не может работать на виртуальном хостинге?

Стоит отметить, что поддержка NodeJS еще не пришла в cPanel (в начале 2019 г.)

0 голосов
/ 02 января 2019

У вас есть доступ к терминалу cpanel с использованием SSH?

Можете ли вы подтвердить, что на сервере установлен nodeJS?

...