2020. 10. 8. 00:59ㆍ서버
Nginx란
Nginx는 동시 접속 처리에 특화된 웹 서버입니다. Apache보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화되어 있습니다. Nginx는 Apache의 스레드/프로세스 구조와는 다르게 비동기 처리(Event-Drive)방식을 채택하고 있습니다.
Nginx의 역할
HTTP 서버
웹 서버의 역할은 HTTP 프로토콜을 기반으로 HTML, CSS, JavaScript와 같은 정적인 데이터를 웹 브라우저에 전송하는 역할을 합니다.
리버스 프록시
클라이언트가 가짜 서버에 요청을 하면, 프록시 서버가 배후 서버로부터 데이터를 가져오는 역할을 합니다. 여기서 프록시 서버가 Nginx, 리버스 서버가 응용프로그램 서버를 의미합니다. 응용프로그램 서버에 리버스 프록시를 두는 이유는 요청에 대한 버퍼링이 있기 때문입니다. 클라이언트가 직접 App 서버에 요청하는 경우, 프로세스 1개가 응답 대기 상태가 되어야하만 합니다. 프록시 서버를 둠으로써 요청을 배분하는 역할을 합니다.
Nginx의 구조
Nginx는 하나의 Master Process와 다수의 Worker Process로 구성되어 실행됩니다. Master Process는 설정 파일을 읽고 유효성을 검사하며 Worker Process를 관리합니다. 모든 요청은 Worker Process에서 처리합니다. Nginx는 이벤트 기반 모델을 사용하는데, Worker Process 사이에 요청을 효율적으로 분배하기 위해 OS에 의존적인 메커니즘을 사용합니다. Worker Process의 개수는 설정 파일에서 정의되며, 정의된 프로세스 개수와 사용 가능한 CPU 코어 숫자에 맞게 자동으로 조정됩니다.
'서버' 카테고리의 다른 글
Apache MPM (0) | 2022.01.06 |
---|---|
Hypervisor (0) | 2020.11.26 |
Apache Section 설정 (0) | 2020.06.15 |
Apache ErrorDocument 설정 (0) | 2020.06.09 |
Apache와 Tomcat의 연동 (0) | 2020.03.18 |