<목차>
- 통신규약
- NGINX는 왜 필요할까?
- NGINX 사용법
1. 통신규약
인터넷에서 데이터를 주고받을 때는 HTTP 또는 HTTPS라는 약속된 규칙을 따라야 해요.
이걸 **통신규약(Protocol)**이라고 부르죠.
- 예: 브라우저가 서버에게 페이지를 요청할 때
-
vbnet복사편집GET / HTTP/1.1 Host: example.com
서버는 이 요청을 읽고 HTML, 이미지, 데이터를 응답해줍니다.
2. NGINX가 필요한 이유
우리가 React, Node.js, Flask, Spring 같은 서버 애플리케이션을 직접 띄우면 보통 3000번, 3005번, 8080번 같은 비표준 포트를 사용해요.
예:
하지만 이런 주소는 몇 가지 문제가 있습니다.
1. 포트번호 노출은 비전문적
- 일반 사용자에게 :3005 이런 포트번호가 보이면 신뢰도가 낮아져요.
- 도메인만 보여주는 게 깔끔하고 안전합니다.
2. 보안 연결(HTTPS)이 어려움
- HTTPS 인증서는 보통 443 포트에서 작동해야 합니다.
- 앱 서버는 443 포트를 직접 사용할 수 없어요.
3. 하나의 서버에 여러 앱 연결 불가
- EC2 한 대에 여러 백엔드를 운영하고 싶을 때, 직접 노출하면 포트 충돌이 납니다.
그래서, NGINX를 사용
NGINX는 웹 서버이자 리버스 프록시 역할을 합니다.
리버스 프록시란?
외부에서 들어온 요청을 내부 서버로 전달해주는 중간 브로커 역할
즉, 이런 식으로 처리합니다:
이렇게 하면:
- 포트번호 없이 도메인만 사용 가능
- 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; } }