
Я знаю, что некоторые из вас могут подумать, что это немного не по теме, но я не уверен, виноват ли это сервер ИЛИ мой конфигурационный файл, так что...
Я сделал проект React.js, но ему нужен рендеринг на стороне сервера, поэтому теперь мне нужно перейти с CRA на next.js. Проблема: мне нужно загрузить свой сайт на веб-сервер Apache, из того, что я собрал в Google, мне нужны установленные node.js и pm2 (последние версии), а также настроенный Apache для обратного прокси. Я также создал ecoystem для pm2 (думаю, это было необходимо). На данный момент это выглядит так:
module.exports = {
apps : [{
name: "nextjs-app",
script: "npm",
args: "run build",
env: {
NODE_ENV: "production"
}
}]
};
но когда я запустил pm2 start npm -- start , терминал выдал мне такой ответ:
pm2 start npm -- start
[PM2] Spawning PM2 daemon with pm2_home=/home/georgianar/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /usr/local/bin/npm in fork_mode (1 instance)
[PM2] Done.
но когда я пытаюсь просмотреть список процессов, их нет, и когда пользователь пытается зайти на сайт, журнал сайта показывает, что на порту 3000 нет службы
AH01114: HTTP: failed to make connection to backend: localhost
и
(111)Connection refused: AH00957: http: attempt to connect to 127.0.0.1:3000 (localhost:3000) failed
поэтому я не уверен, виноват ли сервер или мой конфигурационный файл, вызывающий этот хаос. Есть идеи?
решение1
Сначала убедитесь, что в вашем package.json присутствуют следующие команды:
"scripts": {
"start": "next start -p 3000"
}
Используйте следующую команду
pm2 start yarn --name "nextjs-app" --interpreter bash -- start
Вы можете распечатать подробную информацию о процессе, используя
pm2 show nextjs-app
Настройте PM2 для запуска при загрузке сервера, запустив следующую команду:корень
pm2 startup
Сохраните список процессов pm2, чтобы перезапустить их после перезагрузки сервера.
pm2 save