ふたりで

rocky9+pm2+nextjs+start 본문

centos7 & rocky9

rocky9+pm2+nextjs+start

graykang 2024. 1. 19. 16:50
728x90
반응형
SMALL

1. nvm 스크립트 설치.

]# wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

 

2. source ~/.bash_profile 실행하여 스크립트 적용.

]# source ~/.bash_profile

 

3. 설치할 node 버전 검색

[root@localhost ~]# nvm list-remote
        v0.1.14
        v0.1.15
        v0.1.16
        v0.1.17
.
.
.
.
       v18.10.0
       v18.11.0
       v18.12.0   (LTS: Hydrogen)
       v18.12.1   (LTS: Hydrogen)
       v18.13.0   (LTS: Hydrogen)
       v18.14.0   (LTS: Hydrogen)
       v18.14.1   (LTS: Hydrogen)
       v18.14.2   (LTS: Hydrogen)
       v18.15.0   (LTS: Hydrogen)
       v18.16.0   (LTS: Hydrogen)
       v18.16.1   (LTS: Hydrogen)
       v18.17.0   (LTS: Hydrogen)
       v18.17.1   (LTS: Hydrogen)
       v18.18.0   (LTS: Hydrogen)
       v18.18.1   (LTS: Hydrogen)
       v18.18.2   (LTS: Hydrogen)
       v18.19.0   (Latest LTS: Hydrogen)
        v19.0.0
        v19.0.1
        v19.1.0
        v19.2.0
        v19.3.0
        v19.4.0
        v19.5.0
        v19.6.0
        v19.6.1
        v19.7.0
        v19.8.0
        v19.8.1
        v19.9.0
        v20.0.0
        v20.1.0
        v20.2.0
        v20.3.0
        v20.3.1
        v20.4.0
        v20.5.0
        v20.5.1
        v20.6.0
        v20.6.1
        v20.7.0
        v20.8.0
        v20.8.1
        v20.9.0   (LTS: Iron)
       v20.10.0   (LTS: Iron)
       v20.11.0   (Latest LTS: Iron)
        v21.0.0
        v21.1.0
        v21.2.0
        v21.3.0
        v21.4.0
        v21.5.0
        v21.6.0
        v21.6.1
[root@localhost ~]#

 

4. 원하는 버전의 node 설치.

]# nvm install v18.14.0

 

5. pm2 설치.(node용 프로세스 관리자)

]# npm install pm2 -g

 

- pm2 커멘드 정리.

# 프로세스 이름 설정
pm2 start index.js --name myapp
# 파일이 수정된 경우, 자동 재시작
pm2 start index.js --watch
# 프로세스 실행 시, 인수 사용
pm2 start index.js -- arg1 arg2 arg3
# 프로세스 중단 시, 자동 재시작 안함설정
pm2 start index.js --no-autorestart
# 재시작
pm2 restart myapp
# 중단 없이 재시작
pm2 reload myapp
# 정지
pm2 stop myapp
# 삭제
pm2 delete myapp
# 리스트 확인
pm2 list
# 프로세스 정보 확인
pm2 show myapp
# 모니터링
pm2 monit

 

5. rocky9 의 특정폴더에 node용 프로젝트 소스(next js) 업로드

6. npm run build 실행.

7. package.json 내 실행 명령 스크립트 확인 보통 아래와 같다.

    "scripts": {
        "dev": "next dev -p 3000",
        "build": "next build",
        "start": "next start -p 80",
        "lint": "next lint"
    },

 

. 위의 스크립트중 start 스크립트를 타겟으로 pm2 명령어 실행.

[root@localhost next-ex1]# pm2 --name next-ex1 start npm -- start
[PM2] Starting /root/.nvm/versions/node/v18.14.0/bin/npm in fork_mode (1 instance)
[PM2] Done.
┌────┬─────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name        │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├────┼─────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0  │ next-ex1    │ default     │ N/A     │ fork    │ 3964     │ 0s     │ 0    │ online    │ 0%       │ 16.4mb   │ root     │ disabled │
└────┴─────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
[root@localhost next-ex1]#

스크립트 타겟을 start로 했기 때문에 port 80으로 next js App이 실행 됬으며, 해당 서버 ip로 접속 하면 App화면이 구동된다.

 

- package.json 에 명시된 특정 스크립트로 구동을 해야 할 경우 아래와 같이 실행 할것.

pm2 start npm --name "{app_name}" -- run {script_name}

 

9. 방화벽 오픈

[root@localhost ~]$ firewall-cmd --permanent --zone=public --add-port=80/tcp
[root@localhost ~]$ firewall-cmd --reload

 

10. pm2 로그 관리를 위한 pm2-logrotate모듈 설치 설정.

아래 링크 참고

https://graykang.tistory.com/entry/pm2-logrotate-pm2-log-%EA%B4%80%EB%A6%AC

 

pm2-logrotate (pm2 log 관리)

pm2 만 설치하여 사용할 경우 스토리지 용량이 다 찰 때까지 한 개의 파일에 적재된다. 이럴경우 서비스의 중단 또는 서버의 문제가 발생할 수 있다. 이를 방지하기 위해서 pm2에 module로 pm2-logrotate

graykang.tistory.com

 

728x90
반응형
LIST
Comments