#javascript #node.js #cyber-panel
#javascript #node.js #киберпанель
Вопрос:
Мое приложение разработано в node.js , и у меня есть cyberpanel, установленная на моем сервере. Я видел много примеров того, как развернуть приложение узла в cyberpanel, но у меня есть сомнения по поводу того, как просмотреть его из браузера.
Пока у меня есть следующая конфигурация в vHost:
context / {
type appserver
location /FOLDER/FOLDER/PROJECT_FOLDER/dist
binPath /usr/bin/node
startupFile index.js
appType node
maxConns 100
}
Мое приложение отлично работает на порту 3000, когда я запускаю его с помощью консоли, но мне нужно указать его на порту 80 с помощью cyberpanel.
У кого-нибудь есть идея, как это сделать?
Комментарии:
1. Вы решили свою проблему? Я сталкиваюсь с такой же проблемой.
Ответ №1:
попробуйте выполнить следующие шаги. По сути, ошибка заключается в выборе корневой папки документа и разрешении доступа к приложению.
-
Создайте веб-сайт, используя обычное меню CyperPanel. [https://cyberpanel.net/docs/2-creating-website /]
-
Загрузите свой узел.Файлы Js в папку public_html веб-сайта.
-
Войдите в панель Open Lite Speed через порт: 7080 (вам нужно будет включить порт на брандмауэре)
-
Перейдите к виртуальным хостам> Ваш домен> Контекст
-
Выберите сервер приложений, для определения местоположения используйте $VH ROOT вместо жестко заданного пути.
Кроме того, не забудьте включить управление доступом к сайту, разрешив все IP-адреса (*).
context / {
type appserver
location $VH_ROOT/public_html/
binPath /usr/bin/node
appType node
startupFile server.js //this is the name of your
appserverEnv 1
maxConns 100
accessControl {
allow *
}
rewrite {
}
ad
Ответ №2:
Смотрите, я собираюсь ответить на вопрос от точки к точке
Прежде всего, cyberpanel по умолчанию принимает только app.js файл в качестве основного файла для запуска приложения. Во-вторых, как изменить это указание файла по умолчанию?
context / {
type appserver
startupFile index.js // **NAME OF YOUR STARTUP FILE**
location /home/PROJECT_FOLDER/public_html/dist
binPath /usr/bin/node
appType node
appserverEnv 1
maxConns 100
accessControl {
allow *
}
rewrite {
}
ad
расположение / ПАПКА / ПАПКА / PROJECT_FOLDER/ dist
Примечание: — Вещи, которые я хочу упомянуть об этом параметре местоположения, — это местоположение вашего файла запуска, вы получите его через файловый менеджер, так как вы не можете запустить код typescript непосредственно здесь, вам нужно преобразовать его в javascript с помощью команды tsc и далее указать папку dist, используя параметр location вфайл vconfig
Теперь следующий вопрос: как запустить приложение вне консоли?
- Создайте веб-сайт для развертывания проекта, используйте ссылку ниже для справки нажмите здесь
- Выдача SSL для веб-сайта — ссылка для справки
- Это моя структура папок для развертывания, просто заархивируйте все файлы и загрузите их в файловый менеджер cyber panel и извлеките свои файлы. Вы можете видеть, у меня есть папка dist, которая содержит все файлы javascript, а также index.js , основной загрузочный файл.
-
Нажмите на исправление разрешений в файловом менеджере.
-
Перейдите в веб-терминал и установите модули узла. как? на веб-терминале: — введите cd .. и нажмите enter. Там вам нужно найти свой проект из каталога, вы можете использовать команду ls, чтобы получить список файлов и структуру папок. мой каталог был (после использования cd ..): — cd home/FOLDERNAME/public_html Наконец запустите свой проект через терминал, чтобы проверить его работу.
-
Настройте свой файл конфигурации vhost, ниже приведено эталонное изображение
-
Файл, который вы должны добавить в конфигурацию vhost, я также предоставил вам выше.
-
Если ваш домен настроен правильно, вы можете просматривать api в своем домене, иначе вы можете нажать кнопку предварительного просмотра на панели cyber
Примечание: — Всегда сначала запускайте код в терминале, чтобы проверить его работоспособность.
Комментарии:
1. Я следовал вашим шагам. Но это не работает. Нужно ли мне удалять папку node_modules?
2. удалите node_modules и просто установите их из веб-терминала cyberPanel. И в терминале используйте npm start для запуска проекта. если он запустится, он должен на 100% работать и с URL-адресом cyberPanel
3. Я получил ошибки типа «node.js Ошибка: подключение ECONNREFUSED»
4. Подключите свою базу данных, если IP-адрес внесен в белый список