WEB & WAS/Nginx

Nginx 정리

서버엔지니어 2023. 3. 12.
728x90

Nginx 란?

트래픽이 많은 웹사이트를 위해 확장성을 위해 설계한 비동기 이벤트 기반구조의 웹서버이며 Apache 의 C10K Problem(하나의 웹서버에 10,000 개의 클라이언트의 접속을 동시에 다룰 수 있는 기술적인 문제)를 해결하기 위해 만든 Event-driven 구조의 HTTP, Reverser Proxy, IMAP/POP PROXY server 를 제공하는오픈소스 서버 프로그램입니다

Nginx 로 할 수 있는 기능

HTTP 프록시와 웹 서버 기능

정적 파일과 인덱스 파일 표현, 자동 인덱싱 기능.
캐싱을 통한 리버스 프록시
로드 밸런싱
고장 진단
SSL 지원
캐싱을 통한 FastCGI 지원
Name-, IP-기반 가상서버
FLV 스트리밍
MP4 스트리밍 모듈을 이용한 MP4 스트리밍
웹페이지 접근 인증
gzip 압축
10000개의 동시 접속을 처리할 수 있는 능력
URL 다시쓰기 (URL rewriting)
맞춤 로깅
서버 사이드 기능 포함
WebDAV

메일 프록시 기능
SMTP, POP3, IMAP 프록시
STARTTLS 지원
SSL 지원

* Security 보안 기능 (DDOS Defense)
- 외부 노출되는 인터페이스에 대해 nginx WAS 부분만 노출 가능하다.
public (nginx) , private (backend-server)으로 노출하여 외부에서 backend 에 바로 진입을 할
수 없도록 처리 가능
1) client max connection 조절
2) 서버 (500 http status) 에러 handling 가능
3) prefix URI, 확장자별 처리 가능
4) header, body size filter 처리

* Backend-service 장애 대응 처리
- backend service 에 대해 max fails, fail timeout 시 백업 서버로 진입할 수 있도록 처리 가능

* Load Balancing (TCP layer, Application layer)
- front, reverse proxy 기능 가능, image, stream 등에 대해 처리 가능

* Keep alive 제어
- keep alive = true 에 대해 max connection 수, 1 개의 connection 에 처리량 조절, keep alive

timeout 처리
* sub domain (nginx) 관리 기능
- nginx 에서 여러 도메인으로 접근할 수 있도록 셋팅 가능- apache 와 다른점

 

Apache  Nginx
 요청 당 쓰레드 또는 프로세스가 처리함  비동기 이벤트 기반으로 요청
 Nginx보다 모듈이 다양함  Aapache에 비해 다양한 모듈이 없음
 Php모듈 등 직접 적재가능  많은 접속자들 대응가능
 안정성, 확장성, 호환성 우세  

 

* Size 큰 데이터 caching 처리 가능
- image 및 기타 콘텐츠 데이터에 대해 캐싱 expire 로 제공 가능

댓글