항해99_6기_TIL
항해99 👩💻80일차 TIL
merrytang
2022. 5. 25. 08:03
Nginx란?
1) Nginx는 클라이언트와 웹서버 사이에 존재하는 서버인 역방향 프록시(Reverse Proxy)이다. 때문에 클라이언트의 요청을 중간에 가로채어 응답을 받는 실제 서버에 전달하고, 서버에서 응답이 오면 요청을 했던 클라이언트에게 전달하는 역할을 수행한다.
2) Nginx는 클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용되기도 하고, Reverse Proxy Server(중계기능을 하는 서버)로 활용하여 WAS 서버의 부하를 줄일 수 있는 로드 밸런서로 활용되기도 한다.
Nginx의 장점
- 로드밸런싱 : 이용자가 많아서 발생하는 요청이 많을 때 여러대의 서버를 이용하여 요청을 처리할 수 있고 무중단배포가 가능하다.
- 공격으로부터 보호 : Nginx를 사용하면 웹사이트나 서비스에서 실제 서버의 IP주소를 필요로 하지 않기 때문에 DDoS와 같은 공격이 들어와도 Nginx가 공격받는 것이지 실제 서버가 공격당하지 않아서 보호된다.
Nginx와 Apache
Nginx
비동기 이벤트 기반으로 동작해서 요청이 들어오면 어떤 동작을 해야하는지만 알려주고, 다음 요청을 처리하는 방식으로 진행되어 흐름이 끊기지 않고 응답이 빠르다.
Apache
스레드/프로세스 기반으로 하는 방식으로 요청을 처리하여서 요청 하나당 스레드 하나가 처리하는 구조로 사용자가 많아지면 CPU와 메모리 사용이 증가해서 성능이 저하될 수 있다.