[node] server.js 배포 - Ubuntu / 리부팅시 nodejs 자동시작 > Flutter/Dart/Node

본문 바로가기
사이트 내 전체검색

Flutter/Dart/Node

[node] server.js 배포 - Ubuntu / 리부팅시 nodejs 자동시작

페이지 정보

작성자 sbLAB 댓글 0건 조회 3,591회 작성일 22-02-22 19:04

본문

[Ubuntu nodejs설치]

sudo apt install -y nodejs                       


[Ubuntu]   

sudo apt install nodejs 

sudo apt install npm


[설치버전 확인]

node -v

npm -v


[Ubuntu]    

sudo ufw allow 8000/tcp    

sudo ufw allow 9443/tcp    <- 임의 ssl 포트(9443)도 허용


[CentOS 포트 허용 예)8009] - 외부에서 접근가능 하도록

firewall-cmd --zone=public --permanent --add-port=8009/tcp

firewall-cmd --reload


프로젝트폴더 nodesample 생성

생성폴더로 이동 cd /var/www/nodesample/  또는 home/sbuser/nodesample



npm init

npm install express fs cors path body-parser mysql --save 


[프로젝트폴더 -> package.json] start 추가 

"scripts": {

    "start": "node server.js",

    "test": "echo \"Error: no test specified\" && exit 1"

  },


npm start 실행확인


npm install nodemon -g --save  노드몬 패키지 설치


[프로젝트폴더 -> package.json] start 수정 

  "scripts": {

    "start": "nodemon server.js",

    "test": "echo \"Error: no test specified\" && exit 1"

  },


nodemon start <- 노드몬으로 index.js 실행시작(소스수정시 자동적용 재시작/개발자모드) <- 그러나 터미널 종료시 nodejs 서버도 종료됨.


[참고]프로세스Kill => ps -ef 로 pid번호 확인 ->  $ kill -9 <pid>            ..........    pkill node


[실제배포시에는 nodemon 대신 forever 사용] - 터미널종료 해도 forever  가 리눅스서버 백그라운드 실행


// forever 설치

npm install forever -g 


// server.js 실행

forever start -w server.js  <- -w (watch) 옵션으로 소스수정시 자동적용 재시작 작동.


[forever 명령어들]

forever list  <- 실행 forever 실행 목록 확인(목록에서 로그경로 확인가능)

forever stop server.js    <- forever 중지(server.js) 

forever start server.js   <- forever 시작(server.js)



--------     서버 리부팅시 자동시작 / 사용자계정에서 ssl 키 접근처리   -----------------

[https]
/etc/letsencrypt/live/yesman.kr  <== letsencrypt 인증받으면 이곳에 pem키파일들 저장되어 있음

[nodejs] - yesman 계정에서 ssl 인증키 접근가능하도록 설정
sudo chmod 755 /etc/letsencrypt/live/
sudo chmod 755 /etc/letsencrypt/archive/
sudo chown yesman -R /etc/letsencrypt


/etc/init.d/node_server_start  <---- forever 로 nodejs 실행, 모니터링 리부팅시 자동시작하는 스크립트 작성
------------------
#!/bin/sh
### BEGIN INIT INFO
# Provides:          node_server_start
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5      <------------ 이 녹색부분 헤더내용 추가 필요함(없으면 /etc/rc?.d 에 등록안됨)
# Default-Stop:
# Short-Description: node auto start
### END INIT INFO

export NODE_ENV=production
export PATH=/usr/local/bin:$PATH
cd /home/yesman/nodeweb/
forever start -w index.js > /dev/null
------------------

[자동시작 등록 명령어]
/etc/init.d# update-rc.d node_server_start defaults
ls /etc/rc?.d   <- 등록스크립트(node_server_start) 확인                                                                                                                                                                             

# reboot                                                                                                                                                                      

댓글목록

등록된 댓글이 없습니다.

회원로그인

접속자집계

오늘
118
어제
433
최대
1,279
전체
218,786

그누보드5
Copyright © sebom.com All rights reserved.