NGINX 이란
웹 서버 및 리버스 프록시
NGINX는 고성능 오픈 소스 웹 서버, 리버스 프록시, 로드 밸런서 및 HTTP 캐시입니다. 2004년 Igor Sysoev가 만들었으며 현재 F5 Networks가 소유하고 있습니다.
핵심 기능
- 웹 서버 — 정적 콘텐츠 제공
- 리버스 프록시 — 백엔드 서버로 요청 프록시
- 로드 밸런싱 — 서버 간 트래픽 분산
- SSL/TLS 종료 — HTTPS 연결 처리
- HTTP 캐싱 — 업스트림 서버 응답 캐싱
장점
- 비동기 이벤트 기반 아키텍처
- 낮은 메모리 소비
- 높은 성능(10K+ 연결)
- 간단한 구성
- 모듈식 아키텍처
일반적인 사용 사례
- 정적 파일 제공(HTML, CSS, JS, 이미지)
- Node.js, Python, PHP, Java용 리버스 프록시
- API 게이트웨이
- Docker 컨테이너 간 로드 밸런싱
- 마이크로서비스용 SSL 오프로딩
기본 구성
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
location /static/ {
root /var/www;
expires 30d;
}
}
NGINX vs Apache
| 매개변수 | NGINX | Apache | |----------|-------|--------| | 아키텍처 | 이벤트 기반 | 프로세스/스레드 | | 정적 파일 | 더 빠름 | 더 느림 | | .htaccess | 아니오 | 예 | | 구성 | 중앙 집중식 | 분산식 |
인기 모듈
- ngx_http_gzip_module — 응답 압축
- ngx_http_ssl_module — HTTPS
- ngx_http_proxy_module — 프록시
- ngx_http_upstream_module — 로드 밸런싱
- ngx_http_rewrite_module — URL 재작성