고성능의 HTTP 및 역방향 프록시 서버, 메일 프록시 서버, 일반 TCP/UDP 로드 밸런서로 사용되는 오픈 소스 소프트웨어
1) HTTP 웹 서버
1) 고성능
이벤트 기반(비차단 I/O) 아키텍처를 사용하여 동시 연결 수를 효율적으로 처리
기존의 프로세스 기반 서버(Apache) 보다 적은 리소스로 더 많은 요청 처리 가능
2) 경량성
메모리 사용량이 적으며, 설정 파일이 간단하고 가볍습니다.
3) 확장성
모듈화된 구조로 추가 기능을 쉽게 확장 기능
동적 모듈 로드를 지원
4) 안정성
높은 안정성과 가용성, 적은 다운타임을 제공
5) 다기능
다양한 역할(웹 서버, 프록시 서버, 로드 밸런스)을 수행
| 특징 | Nginx | Apache |
|---|---|---|
| 처리 방식 | 이벤트 기반(비차단 I/O) | 프로세스/스레드 기반 |
| 동시 처리 | 높은 동시 연결 처리 가능 | 많은 열결 시 리소스 소비 증가 |
| 정적 콘텐츠 | 빠르고 효율적 | 비교적 느림 |
| 동적 콘텐츠 | 별도의 애플리케이션 서버와 연동 | 모듈(PHP,Python 등)로 직접 처리 가능 |
| 설정 파일 | 간단하고 가독성이 좋음 | 더 세분화된 설정 가능 |
1) Worker Process
클라이언트 요청을 처리하며, 비차단 이벤트 기반으로 작동합니다.
병렬로 여러 요청을 효율적으로 처리
2) Master Process
Worker 프로세스를 관리하고 설정 파일 변경을 감지하며 로그를 관리
3) Configuration
설정 파일은 /etc/nginx/nginx.conf에 위치
설정 파일 구조
∘ Main : 글로벌 설정(worker 프로세스 수, 로그 위치 등)
∘ HTTP : HTTP 관련 설정(서버, 로드 밸런싱 등)
∘ Server : 도메인 별 가상 호스트 설정
∘ Location : 요청 URI에 따라 처리 규칙 지정