Ubuntu 에서 PM2 및 Nginx 를 사용하여 Node.js 응용 프로그램을 배포하는 방법
루트 권한
1- node.jslts 를 설치합니다.
이 가이드에서는 처음부터 실험을 시작하겠습니다. 먼저 서버에 Node.js 를 설치해야 합니다. Nodejs LTS 버전 6.x 를 사용하겠습니다. nodesource 저장소에서 설치할 수 있습니다.
Ubuntu 라이브러리에서 python-software-properties 패키지를 설치하고 node source”Nodejs 라이브러리를 추가합니다.
Sudo apt-get install-y python- 소프트웨어-속성
Curl -sL /setup_6.x | sudo -E bash-
최신 버전의 Nodejs LTS 를 설치하려면 :
Sudo apt-get install -y 노드
설치가 완료되면 노드와 NPM 버전을 확인합니다.
노드 v
Npm -v
2 단계-빠른 샘플 응용 프로그램 생성
Express-generator 패키지에서 생성된 간단한 웹 어플리케이션 프레임워크를 사용하여 설치하겠습니다. Express-generator 는 NPM 명령을 사용하여 설치할 수 있습니다.
Npm 이 장착된 고속 발전기 설치:
Npm 설치 고속 발전기 g
-g: 시스템 내부에 패키지를 설치합니다.
루트 또는 수퍼유저가 아닌 일반 사용자로 어플리케이션을 실행합니다. 먼저 새 사용자를 만들어야 합니다.
Yume 이라는 사용자를 만들려면 다음과 같이 하십시오.
Useradd -m -s /bin/bash yume
Passwd yume
Su 명령을 사용하여 새 사용자에 로그인:
수매
다음으로 express 명령을 사용하여 새로운 간단한 웹 응용 프로그램을 생성합니다.
빠른 hakase-app
이 명령은 새 프로젝트 디렉토리인 hakase-app 를 만듭니다.
프로젝트 디렉토리로 이동하여 응용 프로그램에 필요한 모든 종속성을 설치합니다.
Cd hakase-app
Npm 설치
그런 다음 다음 명령을 사용하여 새로운 간단한 응용 프로그램을 테스트하고 시작합니다.
DEBUG=myapp:* NPM 시작
기본적으로 express 애플리케이션은 포트 3000 에서 실행됩니다. 이제 서버의 IP 주소:192.168.33.10: 3000:
이 간단한 웹 응용 프로그램 프레임워크는 이제 포트 3000 에서' yume' 사용자로 실행됩니다.
3 단계-PM2 설치
Pm2 는 NPM 명령을 통해 설치할 수 있는 노드 패키지입니다. (루트 권한을 사용하여 여전히 yume 사용자로 로그인한 경우 root 명령을 실행하여 다시 루트 사용자가 됩니다.):
Npm 설치 PM2 -g
이제 웹 응용 프로그램에 PM2 를 사용할 수 있습니다.
응용 프로그램 디렉토리 hakase-app 로 이동합니다.
수매
Cd ~/hakase-app/
여기서 package.json 이라는 파일을 보고 cat 명령을 사용하여 내용을 표시할 수 있습니다.
Cat package.json
시작 줄에는 express 응용 프로그램을 시작하는 nodejs 명령이 있습니다. Pm2 프로세스 관리자에서 이 명령을 사용하겠습니다.
다음과 같이 PM2 명령을 사용하여 express 응용 프로그램을 실행합니다.
Pm2 가 시작됩니다. /bin/www
이제 이런 결과를 볼 수 있습니다.
당사의 express 응용 프로그램은 이름이 www 이고 id 가 0 인 PM2 에서 실행됩니다. Show 옵션 show nodeid|name 을 사용하면 PM2 에서 실행되는 응용 프로그램에 대한 자세한 정보를 얻을 수 있습니다.
Pm2 표시 www
애플리케이션 로그를 보려면 logs 옵션을 사용할 수 있습니다. 여기에는 액세스 및 오류 로그가 포함되며 응용 프로그램의 HTTP 상태도 표시됩니다.
Pm2 로그 www
우리 프로그램이 실행 중임을 알 수 있습니다. 자, 스스로 작동시켜 봅시다.
Pm2 부트 시스템 d
Systemd: Ubuntu 16 은 Systemd 를 사용합니다.
Root 사용자로 명령을 실행할지 묻는 메시지가 표시됩니다. Exit 명령을 사용하여 root 로 돌아가서 명령을 실행합니다.
Sudo envpath = $ path:/usr/bin/usr/lib/node _ modules/PM2/bin/PM2 부트 시스템 d-u yume-HP-
시작 응용 프로그램에 대한 systemd 구성 파일을 생성합니다. 서버를 다시 시작하면 응용 프로그램이 자동으로 실행됩니다.
4 단계-Nginx 설치 및 리버스 프록시로 구성
이 설명서에서는 노드 애플리케이션의 역방향 프록시로 Nginx 를 사용합니다. Ubuntu 라이브러리에 Nginx 가 있습니다. apt 명령을 사용하여 설치합니다.
Sudo apt-get install -y nginx
다음으로 사이트 사용 가능 디렉토리로 이동하여 새 가상 호스트 구성 파일을 생성합니다.
CD/etc/nginx/sites- 사용 가능/
Vim hakase-app
다음 구성을 붙여 넣습니다.
업스트림 hakase-app {
# Nodejs 애플리케이션 업스트림
서버127.0.0.1:3000;
Keepalive 64
}
# 포트 80 의 서버
서버 {
80 을 듣다
서버 이름 hakase-node.co;;
Root/home/yume/hakase-app;
위치/{
# Proxy_pass 구성
Proxy _ set _ header x-forwarded-for $ proxy _ add _ x _ forwarded _ for;
Proxy _ set _ headerhost $ http _ host;
Proxy _ set _ header x-nginx-proxytrue;
Proxy _ http _ version1.1;
Proxy _ set _ headerupgrade $ http _ upgrade;
Proxy_set_header 연결 업그레이드;
Proxy _ max _ temp _ file _ size0;
Proxy _ pass http://hakase-app/;
Proxy _ redirect off
Proxy _ read _ timeout 240s
}
}
파일을 저장하고 vim 을 종료합니다.
구성에서 다음을 수행합니다.
노드 응용 프로그램은 도메인 이름 hakase-node.co 를 사용하여 실행됩니다.
Nginx 의 모든 트래픽은 포트 3000 에서 실행되는 노드 어플리케이션으로 전달됩니다.
Nginx 구성을 테스트하여 오류가 없는지 확인합니다.
Nginx -t
Nginx 를 활성화하고 시작합니다.
Systemctl 시작 nginx
Systemctl nginx 활성화
5 단계-테스트
웹 브라우저를 열고 도메인 이름 (내 것): http://hakase-app.co 를 방문하십시오.
Express 애플리케이션이 nginx 웹 서버에서 실행 중임을 알 수 있습니다.
다음으로, 노드 애플리케이션이 자동으로 부팅되도록 서버를 재부팅합니다.
Pm2 저장
Sudo 재부팅
서버에 다시 로그인하는 경우 노드 응용 프로그램 프로세스를 확인합니다. Yume 사용자로 다음 명령을 실행합니다.
수매
Pm2 상태 www