Server

Server) Nginx ? 누구냐 넌

김코식 2023. 1. 9. 01:09


Nginx 

경량 웹 서버

클라이언트로 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 Http Web Server로 활용되기도 하고

Reverse Proxy Server로 활용하여 WAS 서버의 부하를 줄일 수 있는 로드 밸런서로 활용 되기도 합니다.


%Reverse Proxy Server %
https://ik0501.tistory.com/entry/Spring-%ED%94%84%EB%A1%9D%EC%8B%9C-%EC%84%9C%EB%B2%84%EA%B0%80-%EB%8F%84%EB%8D%95%EC%B1%85-%EB%AD%94%EB%8D%B0

 

Server) 프록시 서버가 도덕책 뭔데?

Proxy Server (프록시 서버)란? 프록시 서버는 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 클라이

ik0501.tistory.com


Nginx 의 활용

  • Http Server : 정적 파일을 처리하는 Web Server역할 수행
  • Reverse Proxy Server : 클라이언트의 요청을 Application Server에 배분
                                          클라이언트 80포트 요청을 8080등 여러 Application server로 보내줌
                                          각 application server에 요청을 배분하여 부하를 분산
  • Mail Proxy Server
  • Generic TCP/UDP proxy server

Nginx 의 구조

  • Master Process - 설정 파일을 읽고 설정에 맞게 worker process를 생성
  • Worker Process - 실제 일을하는 프로세스로 worker process가 만들어 질 때 지정된 listen 소켓을 배정받음
  • connection - 소켓에 새로운 클라이언트의 요청이 들어오면 connection이 형성되고 처리
                        connection은 정해진 keep-Alive 시간 만큼 유지
                        하지만 connection이 형성되었다고 해서 worker process가 해당 connection 하나만 담당하진 않음
  • event - connection 형성과 제거, 그리고 새로운 요청을 처리
                os 커널이 이벤트들을 queue 형식으로 worker process에게 전달.
                -> 이벤트들은 queue에 담긴 상태에서 비동기 상태로 대기
                -> worker process는 하나의 스레드로 이벤트를 꺼내서 처리

Appache의 스레드 방식과 Nginx의 Event-driven 방식

스레드 방식 : 하나의 connection당 하나의 스레드를 할당

Event-driven 방식 : 여러개의 connection을 전부 Event Handler를 통해 비동기 방식으로 처리


Nginx의 장단점

 

장점

  • 이벤트 중심 접근 방식을 사용하여 클라이언트 요청 제공
  • 제한된 하드웨어 리소스로 여러 클라이언트 요청을 동시에 효율적으로 처리
  • 단일 스레드를 통해 여러 연결을 처리
  • 최소한의 리소스로 웹 서버의 아키텍처를 개선하기 위해 독립형 HTTP 서버로 배치 가능

 

단점

  • 동적 컨텐츠를 기본적으로 처리할 수 없음
  • 동적 컨텐츠에 대한 요청을 처리하기 위해 외부 프로세서로 전달하고 렌더링 된 컨텐츠가 다시 전송될 때 까지 기다려야함

참고자료

https://dkswnkk.tistory.com/513

https://velog.io/@wijihoon123/Nginx%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80