AWS EC2에 nodejs 배포 방법 : nginx, pm2
AWS EC2의 ubuntu, nginx 서버에 nodejs 코드를 배포하는 방법입니다.
1. AWS EC2 인스턴스 생성
AWS EC2 인스턴스 생성 방법
아마존의 클라우드 서비스인 AWS EC2 인스턴스 생성 방법을 소개 하겠습니다. 1. EC2에서 인스턴스 시작 버튼을 클릭 2. AMI 를 선택 - ubuntu server 18.04 LTS 3. 인스턴스 유형을 선택 - t2.micro 4. 인스턴..
sajupick.tistory.com
2. nodejs, nginx 설치
cd /var
sudo mkdir www
sudo chown ubuntu www
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install nginx
sudo systemctl start nginx- curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v
npm -v
sudo npm install -g pm2
https://torbjorn.tistory.com/527
Ubuntu 18.04 Node.js 설치 방법
(참고 링크) distro-stable version 설치 (apt) 간단하게 apt를 이용해 설치해보겠습니다. $ sudo apt update $ sudo apt install nodejs $ sudo apt install npm 그런데 버전이 너무 낮습니다. 최신 버전을 받기..
torbjorn.tistory.com
3. nodejs 코드 가져오기
cd /var/www
git clone https://github.com/vipick/nodejs-example.git
ls -ld ~/.config
sudo chown -R $USER ~/.config
cd /var/www/nodejs-example
sudo npm install
npm start
- 코드를 변경사항이 있으면 pm2 reload all 명령어를 실행합니다.
4. nginx 설정
cd /etc/nginx/sites-enabled
sudo rm default
sudo nano default
- 아래 내용을 default 에 저장
server {
listen 80;
listen [::]:80;
access_log /var/log/nginx/reverse-access.log;
error_log /var/log/nginx/reverse-error.log;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 포워딩 아이피
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme; # 프로토콜proxy_set_header X-NginX-Proxy true;
proxy_buffering off;
client_max_body_size 200M;
proxy_redirect off;
}
}
sudo nginx -t
sudo systemctl restart nginx
cd /var/log/nginx
vi reverse-access.log : access 로그가 저장된 것을 확인 할 수 있습니다.
5. pm2 자동시작 설정
- pm2 는 nodejs 어플리케이션을 위한 process manager 입니다.
- 로컬 개발 환경에서는 nodejs 를 실행시키기 위해 nodemon을 사용하지 만 운영(production) 서버에서는 pm2 를 사용합니다.
- pm2 startup 은 EC2가 재부팅 시 자동으로 pm2를 실행시켜주는 명령어 입니다.
pm2 startup
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
pm2 save
sudo systemctl restart nginx
6. ubuntu 서버 한국 시간 설정
sudo timedatectl set-timezone 'Asia/Seoul'
date