
여러분 중 일부는 여기서 주제가 조금 벗어난다고 생각할 수도 있지만 서버 결함인지 내 구성 파일 결함인지 확실하지 않으므로...
React.js 프로젝트를 만들었는데 서버사이드 렌더링이 필요해서 이제 CRA에서 next.js로 마이그레이션해야 합니다. 문제: 내 웹사이트를 Apache 웹 서버에 업로드해야 합니다. Google에서 수집한 내용을 바탕으로 node.js 및 pm2(최신 버전)를 설치해야 하며 역방향 프록시용 Apache도 구성해야 합니다. 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