카테고리 없음

AWS NGINX

tp134679 2025. 4. 21. 17:44

<목차>

  1. 통신규약
  2. NGINX는 왜 필요할까?
  3. NGINX 사용법

 

 

1. 통신규약 

 

인터넷에서 데이터를 주고받을 때는 HTTP 또는 HTTPS라는 약속된 규칙을 따라야 해요.
이걸 **통신규약(Protocol)**이라고 부르죠.

  • 예: 브라우저가 서버에게 페이지를 요청할 때
  • vbnet
    복사편집
    GET / HTTP/1.1 Host: example.com

서버는 이 요청을 읽고 HTML, 이미지, 데이터를 응답해줍니다.


2. NGINX가 필요한 이유

우리가 React, Node.js, Flask, Spring 같은 서버 애플리케이션을 직접 띄우면 보통 3000번, 3005번, 8080번 같은 비표준 포트를 사용해요.

예:

bash
복사편집

하지만 이런 주소는 몇 가지 문제가 있습니다.

 1. 포트번호 노출은 비전문적

  • 일반 사용자에게 :3005 이런 포트번호가 보이면 신뢰도가 낮아져요.
  • 도메인만 보여주는 게 깔끔하고 안전합니다.

2. 보안 연결(HTTPS)이 어려움

  • HTTPS 인증서는 보통 443 포트에서 작동해야 합니다.
  • 앱 서버는 443 포트를 직접 사용할 수 없어요.

3. 하나의 서버에 여러 앱 연결 불가

  • EC2 한 대에 여러 백엔드를 운영하고 싶을 때, 직접 노출하면 포트 충돌이 납니다.

그래서, NGINX를 사용

NGINX웹 서버이자 리버스 프록시 역할을 합니다.

리버스 프록시란?

외부에서 들어온 요청을 내부 서버로 전달해주는 중간 브로커 역할

즉, 이런 식으로 처리합니다:

text
복사편집
[사용자] ↓ http://mydomain.com [NGINX] ↓ 내부에서 http://localhost:3005 로 연결 [Node.js / React 등]

이렇게 하면:

  • 포트번호 없이 도메인만 사용 가능
  • HTTPS 설정도 가능
  • NGINX 한 대로 여러 백엔드 연결 가능

3. NGINX 사용법 

1) 설치

bash
복사편집
sudo apt update sudo apt install nginx

2) 실행 & 상태확인

bash
복사편집
sudo systemctl start nginx sudo systemctl status nginx

3) 리버스 프록시 설정 예시

/etc/nginx/sites-available/default 또는 conf.d/myapp.conf 파일에 아래 내용 추가:

nginx
복사편집
server { listen 80; server_name mydomain.com; location / { proxy_pass http://localhost:3005; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }