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
'Server' 카테고리의 다른 글
Server) 프록시 서버가 도덕책 뭔데? (0) | 2023.01.07 |
---|