nginx란?
트래픽이 많은 웹사이트를 위해 확장성을 위해 설계한 비동기 이벤트 기반구조의 웹서버 소프트웨어
Event-driven구조의 HTTP, Reverser Proxy, IMAP/POP PROXY server를 제공하는오픈소스 서버 프로그램
웹서버 비교
Apache
- 쓰레드 / 프로세스 기반 구조로 요청 하나당 쓰레드 하나가 처리하는 구조
- 사용자가 많으면 많은 쓰레드 생성, 메모리 및 CPU 낭비가 심함
- 하나의 쓰레드 : 하나의 클라이언트 라는 구조
nginx
- 비동기 Event-Driven 기반 구조.
- 다수의 연결을 효과적으로 처리가능.
- 대부분의 코어 모듈이 Apache보다 적은 리소스로 더 빠르게 동작가능
- 더 작은 쓰레드로 클라이언트의 요청들을 처리가능
쓰레드와 Event-driven
쓰레드 기반은 하나의 커넥션당 하나의 쓰레드를 잡아 먹지만 이벤트 드라이븐방식은 여러개의 커넥션을 몽땅 다 Event Handler를 통해 비동기 방식으로 처리해 먼저 처리되는 것부터 로직이 진행되게끔 합니다.
nginx의 활용
Apache도 나름 좋은 점이 있지만 서버의 자원 활용도 능력으로 보면 nginx가 좋습니다. 한 개의 커넥션당 하나의 쓰레드는.. 자원을 너무 많이 잡아먹습니다.
nginx를 사용하는 곳
넷플릭스, 워드프레스, 깃헙, Heroku, CloudFlare, 카카오톡 공지사항 서버, 네이버 첫페이지, G마켓, 나무위키, 오픈위키 등이 사용합니다. 네이버의 경우, Apache에서 Nginx로 갈아타며 TPS 3배증가, 서버 대수 1/3으로 감소 Nginx 장애 0건으로 엄청난 이득을 보았다고 합니다.
(https://www.slideshare.net/sjjang61/nginx-testing-innaver-16742438 - naver nginix 도입기)
https://m.blog.naver.com/jhc9639/220967352282
https://www.opentutorials.org/module/384/3462 -> 나중에 영상볼것
'server' 카테고리의 다른 글
GC 튜닝 & STW (STOP-THE-WORLD) (0) | 2019.05.28 |
---|---|
class < jar < war < ear (0) | 2019.03.20 |
install ubuntu using virtualbox on mac (0) | 2019.03.09 |
L4 란 :: 로드밸런싱 / fail over (0) | 2018.12.02 |
socket.io (0) | 2018.11.24 |