
1. 들어가며
- Nginx 를 이용해서 서버 배포하기
2. Nginx
Nginx 는 비동기 이벤트 기반 구조의 웹 서버 프로그램이다.
Apache는 클라이언트 접속마다 프로세스 또는 스레드를 생성하는 구조라 요청이 많으면 자원이 많이 소모된다. 따라서 대량의 클라이언트가 접속했을 때는 한계가 있다.
Nginx는 event-driven 구조로 동작하는데, 따라서 Apache 보다 적은 자원으로 효율적인 운용이 가능하다.
Nginx 설치 및 설정
1. windows OS에서는 Putty, MAC OS에서는 터미널을 열어서 EC2 터미널에 접속한다.
2. 패키지 저장소를 다음의 커맨드로 업데이트한다.
sudo apt-get update
3. Nginx 를 설치한다.
sudo apt-get install nginx
4. 설정 파일을 생성한다. (default 파일로 해도 될거 같음..)
sudo vi /etc/nginx/sites-available/test
위와 같이 생성하면 확장자가 .conf 로 된 것이 생성된다.
test는 원하는 설정 파일명으로 설정한다.
5. 다음 그림과 같이 설정 파일 안에 커맨드를 적어준다.

6. 다음의 커맨드로 심볼릭 파일을 생성한다.
sudo ln -s /etc/nginx/sites-available/test /etc/nginx/sites-enabled/test
그러면 sites-available 디렉토리에 있던 test.conf 파일이 sites-enabled 디렉토리에 생성된다.
sites-enabled 에 있는 파일로 실제로 활성화 된다.
제대로 생성되었는지 확인하려면 아래의 커맨드를 입력한다.
sudo nginx -t
마지막 줄에 '파일명 is successful' 이 나오면 제대로 생성된 것이다.
7. nginx 를 재시작한다.
sudo systemctl restart nginx
8. node.js 로 프로젝트를 만들었기 때문에 node.js를 서버내에 설치한다.
curl -fsSL https://deb.nodesource,com/setup_lts.x | sudo -E bash
sudo apt-get install -y nodejs
9. 무중단 배포를 위해 pm2 를 설치한다.
sudo npm i -g pm2
10. 배포할 프로젝트가 있는 깃 저장소를 클론하고, npm install을 한다. 그 후, pm2 start index.js 로
프로젝트를 배포한다.
(만약 .env 를 사용한다면 .env 파일도 생성해준다)
※※참고
pm2 명령어
- pm2 상태 확인
pm2 status
- 재시작
pm2 restart id값
- 중지
pm2 stop id값
- 완전 중지
pm2 kill
- 로그 확인
pm2 log
결과

일단 테스트 파일을 배포하는데 성공했다.!
3. 마치며
전에 Apache로 배포했을 때는 파일질라를 이용해서 파일을 옮기면서 배포했는데 이번에 실습을 하면서
커맨드로 깃 저장소를 클론해서 배포를 해봤다.
뭔가 계속 CLI로 하니까 헷갈리기도 하지만 더 .. 뭔가 머릿속에 들어오는 느낌이다.
처음에 계속 502 Bad Gateway 오류가 떠서 왜 나만 이럴까.. 했는데
알고보니 내가 index.js 에서 오타를 내서 그런 것이었다!
배포 하는 방법에 대해서 더 잘 알게되서 나중에 사이드 프로젝트를 위의 방법을 이용해서 배포할 것이다.
4. Reference
1. 코딩온 강의 교안 및 실습
2. https://jammdev.tistory.com/217
[NGINX] NGINX 란?
1. nginx 란? nginx 는 경량 웹서버로 정적파일을 serving 하는 web server 또는 요청을 다른 서버로 전달하는 reverse proxy server 로 활용되어 was 의 부하를 줄이는 로드 밸런서로 사용할수도 있다. nginx 와 많
jammdev.tistory.com
3. https://bsssss.tistory.com/1053
Event Driven Architecture (이벤트 드리븐 아키텍처)란?
Event Driven Architecture란 MSA가 적용된 시스템을 보완하는 아키텍처로 Event Driven Architecture란 이벤트의 생산, 갑지, 소비 및 반응 또는 시스템 상태의 중대한 변화를 지원하는 소프트웨어 모델 또는
bsssss.tistory.com
4. https://medium.com/dtevangelist/event-driven-microservice-%EB%9E%80-54b4eaf7cc4a
Event Driven Microservice 란?
MicroService Architecture(MSA)는 loosely coupled를 기반으로 빠른 배포주기, 폴리글랏 프로그래밍, 관심사의 집중 등의 장점을 발휘해 Enterprise IT에서 가장 주목받고 있는 아키텍처 입니다. 또한, 분해된…
medium.com
'Study > Node.js' 카테고리의 다른 글
| CORS 에 대해서 알아보기 (0) | 2024.11.21 |
|---|---|
| [새싹x코딩온] 웹 개발자 부트캠프 과정 8주차 회고 | 비밀번호 암호화(feat. bcrypt) (0) | 2024.07.06 |
| [새싹x코딩온] 웹 개발자 부트캠프 과정 8주차 회고 | Cookie 와 Session (0) | 2024.07.02 |
| [새싹x코딩온] 웹 개발자 부트캠프 과정 7주차 회고 | Node.js + MySQL 연결(MVC 패턴 적용) (0) | 2024.06.27 |
| [새싹x코딩온] 웹 개발자 부트캠프 과정 7주차 회고 | MVC 패턴으로 프로젝트 만들기 (0) | 2024.06.25 |