Nginx를 사용하는 이유

bunny.log·2023년 5월 23일

Nginx란?

동시 접속 처리에 특화된 웹서버로 클라이언트로부터 http 요청을 받아 요청에 해당하는 파일을 http 통신을 통해 응답해주는 프로그램이다. 웹서버 특성상, WAS와는 다르게 정적 컨텐츠 호스팅에 특화되어있고 이 밖에 리버스 프록시, 캐싱, 로드 밸런싱, 미디어스트리밍 등 유용한 여러 역할을 수행한다.

  1. 정적 컨텐츠 호스팅에 특화
  2. 리버스 프록시
  3. 캐싱 : http 프로토콜을 사용하여 전달하는 콘텐츠를 캐싱할 수 있음, 한 번 서버에서 응답받은 것을 스스로 보관하고 클라이언트에 전달함.
  4. 로드 밸런싱
  5. 미디어스트리밍
  6. SSL 터미네이션 : 클라이언트와 https 통신하고, 서버와 http 통신하는 것

Web Server : 단순히 정적 파일 응답
WAS(Web Application Server) : 클라이언트 요청에 대해 동적 처리가 이뤄진 후 응답

1. Reverse Proxy

리버스 프록시는 외부에 노출시키려는 리소스 앞 단에 위치한다. 리버스 프록시를 수행하는 Nginx의 역할은 다음 그림과 같다.

리버스 프록시와 포워드 프록시의 차이는 아래의 두 그림에서 보여지는 것처럼 웹서버의 위치가 다르다는 점이다.

forward proxy

reverse proxy

대부분의 WAS 는 Web Server 기능을 제공하므로 Reverse proxy 가 없이 내부 WAS 가 직접 서비스를 제공해도 되지만 이렇게 구성하는 이유중 여러가지가 있다.

  • 리버스 프록시의 웹서버를 리소스의 앞 단에 위치 시킴으로, DB와 연결된 WAS의 보안을 강화 할 수 있다.

  • Cache Server 를 붙이거나 SSL 하드웨어 가속기를 연동하는등 아키텍처 측면에서 성능 향상을 하기가 해진다.

  • 리버시 프락시를 cluster로 구성해 놓으면 가용성을 높일 수 있고 사용자가 증가하는 상황에 맞게 Web Server 나 WAS 를 유연하게 늘릴 수 있는 장점이 있다

참고

https://velog.io/@davidko/Nginx%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0

https://ssdragon.tistory.com/60

profile
더 많은 유익한 내용은 ->> https://github.com/nam-yeun-hwa

0개의 댓글