Nginx란?
오픈 소스 웹 서버 프로그램이다.
Nginx의 Worker Process는 단일 쓰레드로 동작하지만 이벤트 기반 모델을 활용하여 여러 연결을 동시에 처리할 수 있기 때문에 Apache보다 성능과 리소스 관리에서 더 효율적이다. (Apache는 안정성이 좋음!, 여러 커넥션 마다 쓰레드를 만듦)
웹서버는 클라이언트의 요청을 웹 서버는 받고 정적 페이지를 응답 해준다. 정적 페이지는 html, css, js 이미지 등으로 구성된다.
웹 서버 = 인터넷을 기반으로 클라이언트에게 웹 서비스를 제공하는 컴퓨터 혹은 프로세스
주요 특징은 이벤트 기반 구조이다!
[서버] Nginx 란?
업로드중..
velog.io
Nginx를 왜 배우는 걸까?
그럼 Nginx가 도대체 어떤 역할을 하길래 Nginx를 사용하는 걸까?
Nginx는 딱 1가지 기능만을 가지고 있는 소프트웨어가 아니다. 다양한 기능들을 가지고 있는 소프트웨어이다.
아래와 같은 기능들을 구현하기 위해서 Nginx를 사용한다.
- 정적 컨텐츠 제공
- 리버스 프록시 서버 구축
- SSL 처리
- 로드 밸런싱
- 장애 대응
- 캐싱
- 보안 처리 (IP 차단, 요청 수 제한)
Nginx 구조와 동작 원리
해당 사진은 Nginx구조를 도식화 했다.
Nginx는 worker process를 생성하는 master process를 가진다.
worker process는 만들어 질 때 listen소켓을 배정받고, 실제로 요청을 처리하는 프로세스이다.
해당 listent소켓에 새로운 클라이언트의 요청이 들어오면 connection을 형성하고 처리한다.
os 커널로부터 worker process는 queue 형식으로 전달받는다.
woker process는 하나의 쓰레드로 동작하며, 이 부분이 Apache 서버보다 이점이다. (Apache server는 Connection마다 쓰레드를 생성한다.)
위 이미지 처럼 이벤트 기반의 Nginx는 Event Handler를 통해 비동기 방식으로 여러 connection을 처리한다.
리버스 프록시 서버
Nginx에 대해서 살펴 봤고 실제 백엔드 개발자가 어떤식으로 Nginx를 활용할지 고민이라면 리버스 프록시 서버를 구현하기 위해서
활용하면 된다고 말해주고 싶다!
리버스 프록시 서버는 서버로 요청이 가기전에 내부 서버를 보호하고, SSL암호화(HTTPS), 캐싱, 로드 밸런싱 등을 하고 싶다면 사용한다!
코드도 나오고 글에 흐름에 안 맞을 수 있어 아래 게시글로 포스팅한다!
https://whdudev.tistory.com/26
[Nginx] 리버스 프록시 서버 구축하기!
whdudev.tistory.com
한계
1. 동적 컨텐츠를 기본적으로 처리 할 수 없습니다.
2. 동적 컨텐츠를 처리하기 위해서는 외부 자원과 연계가 불가피합니다.
참고
참고 자료들도 같이 보도록 하자!
#03 Nginx Reverse Proxy(프록시) 서버 구축
안녕하세요. TAK 입니다:) 이번 포스팅은 Nginx Reverse Proxy(프록시) 서버 구축을 목표로 합니다 .🤞 Nginx Reverse Proxy(프록시) 서버 구축을 통해 어떻게 동작되는지, 어떻게 활용되는지 확인해 보
with-cloud.tistory.com
포워드 프록시와 리버스 프록시
프록시 (Proxy) 프록시란? 프록시는 클라이언트와 서버 사이에 위치한 중계 서버로 통신을 대신 수행하는 대리자 역할을 한다. 프록시가 없다면 클라이언트는 서버와 직접 통신한다. 반면, 클라이
hudi.blog
Nginx로 Reverse Proxy 서버를 구축해서 로드밸런싱하기
📌 웹 서버란?웹 서버는 HTTP 요청을 받아들이고 해당 요청에 대한 응답을 제공하는 프로그램입니다. 주로 정적 컨텐츠를 제공하는 서버 (주로 정적 컨텐츠 캐싱이나 리버스 프록시 용도로 사
strong-park.tistory.com