-
AWS EC2에 nodejs 배포 방법 : nginx, pm2개발/서버 2021. 3. 28. 08:30
AWS EC2의 ubuntu, nginx 서버에 nodejs 코드를 배포하는 방법입니다.
1. AWS EC2 인스턴스 생성
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
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
'개발 > 서버' 카테고리의 다른 글
AWS EC2 Auto Scaling 그룹에 소스 코드 배포 자동화 (0) 2021.06.21 Amazon Linux2 에 nodejs, nginx 설치 (0) 2021.06.20 AWS EC2 인스턴스 생성 방법 (0) 2021.03.26 SSH 원격 서버 접속 방법 : mobaXterm (0) 2021.03.26 [aws] Route 53으로 S3에 도메인 연동 (0) 2020.04.07