Node js - 재부팅시 서버 자동 실행

00_8_3·2020년 12월 21일
0

간단 Node

목록 보기
21/27

AWS EC2 Ubuntu

리눅스에서 nodejs를 80번 포트로 실행

1024보다 작은 번호의 포트는 root 권한으로만 실행가능
보안적으로 안좋은 방법

node를 8000번 포트로 실행하기

예제

app.listen(8000);

iptables를 이용한 리디렉션

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8000;
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 3000; // 443포트도 설정
sudo iptables -t nat -L;
sudo apt install iptables-persistent; # yes ## AWS 서버가 꺼져도 위의 설정이 저장되어 실행됨
sudo bash -c "iptables-save > /etc/iptables/rules.v4";
sudo bash -c "iptables-restore < /etc/iptables.conf"; startup script에 등록

pm2 start index.js
pm2 save // AWS 서버 꺼졌다 켜져도 자동 실행
pm2 startup

sudo pm2 unstartup systemd; // pm2 설정한거 삭제

테이블 확인

$ iptables -t nat -L --line-numbers

AWS Load Balancer를 이용한 리디렉션

AWS EC2-로드벨런서-리스너-80포트 편집-기존 삭제-작업추가-리디렉션 선택(443으로)
로드벨런서 리디렉션

클라이언트가 80이나 443으로 접속 - 강제로 443 - 443포트가 8000으로 이동(iptables) - 노드서버접속

출처

생활코딩
스택오버플로우

0개의 댓글