본문 바로가기
728x90

인프라/nginx4

[번역] Thread Pools in NGINX Boost Performance 9x! Nginx가 비동기, 이벤트 드리븐을 사용한다. 따라서 전통적인 서버 아키텍처처럼 매 요청마다 그에 상응하는 프로세스나 스레드를 생성하는 대신 여러 커넥션과 요청들을 하나의 워커 프로세스에서 처리한다. 이런 동작 과정을 위해 Nginx는 non-blocking 형태의 소켓과 epoll, kqueue와 같은 효율적인 방법을 사용한다. Nginx는 프로세스 갯수가 적고 정적이기 떄문에 메모리 낭비가 적고 CPU 주기가 컨텍스트 스위칭으로 낭비되지 않는다. 이러한 접근법의 이점은 Nginx로 증명되었다. Nginx는 수백만개의 동시 요청과 스케일을 무리없이 감당한다. 하지만 비동기, 이벤트 드리븐 방식도 문제가 존재한다. 바로 blocking이다. 안타깝게도 많은 서드파티 모듈들은 blocking call을 .. 2022. 8. 14.
[번역]Inside NGINX: How We Designed for Performance & Scale Nginx는 설계 방식 덕분에 우수한 웹 퍼포먼스를 보이고 있다. 수 많은 WS와 WAS가 스레드 또는 프로세스 기반 아키텍처를 사용하는 반면, nginx는 접속을 수백 수천개의 동시 접속으로 확장할 수 있는 정교한 event-driven 아키텍처를 사용하고 있다. Inside NGINX 는 고수준 프로세스 아키텍처부터 저수준으로 내려가면서 Nginx가 여러개의 커넥션을 싱글 프로세스로 처리하는 과정을 서술하고 있다. 이 글은 한발 더 나아가 더 디테일하게 Nginx의 동작 과정을 서술하려 한다. Setting the Scene - The NGINX Process Model Nginx의 설계를 이해하기 위해선 Nginx가 어떻게 동작하는지 알아야 한다. Nginx는 하나의 마스터 프로세스와 워커프로세스,.. 2022. 8. 11.
Proxy server Proxy server는 웹페이지 같은 유저 쪽에 있는 인터넷에서 데이터를 찾아오는 서버이다. 이는 서버와 클라이언트 사이에서 다리 역할을 하고 요청, 응답을 한다. 프록시 서버는 중간자 역할을 수행하고 해당 웹페이지를 검색한다. 유저가 웹사이트에 방문을 하면 프록시 서버는 유저의 컴퓨터에서 요청을 받고 사용자를 대신해 웹페이지를 검색해 컴퓨터로 전송한다. 프록시 서버는 다음과 같은 종류가 있다. - Forward proxy server: 여러 클라이언트에서 서버로 오는 요청을 처리한다 - Reverse proxy server: Forward proxy server와는 반대로 동작한다. 따라서 forward proxy는 클라이언트를 위한거고, reverse proxy는 서버를 위한거다. 따라서 Rever.. 2021. 9. 25.
nginx nginx 경량 웹 서버이다. 클라이언트로 부터 요청을 받았을 때 요청에 맞는 정적파일을 응답해 주는 HTTP Web Server로 활용되거나 Reverse Proxy Server로 활용해 WAS 서버의 부하를 줄이는 load balancer 역할을 하기도 한다. nginx 흐름 nginx는 Event-driven 방식을 사용해 동작하기 때문에 한개 또는 고정된 프로세스만을 사용하고 비동기 방식을 사용해 요청을 동시에 처리할 수 있다. 따라서 요청이 많이 들어온다 해도 새로운 프로세스 또는 쓰레드를 생성하지 않기 때문에 프로세스, 쓰레드 생성 비용이 존재하지 않는다. 그때문에 적은 자원으로 효율적인 운영이 가능하며 단일 서버에서 동시에 많은 연결을 처리할 수 있다. Event-Driven apache의 .. 2021. 9. 19.
728x90