Nginx의 필요성 - vvonha/NaverAPI GitHub Wiki

웹 서버

  • Client PC에서 동작 할 정적 Web Page를 생성하여 Client PC에 전달 합니다.

    • 정적 Web Page란?
      • Web Brower만 있으면 볼 수 있는 page를 말합니다. 즉, Web Server와 통신이 필요 없는 Page입니다.

      • 정적 Page에서는 CSS, javascript가 동작을 하나 동작 결과는 Server에 저장되지 않습니다.

      • 주로 HTTP 통신 프로토콜을 통해 리소스를 전달하지만 FTP, SMTP 와 같은 다른 프로토콜도 지원합니다.

웹 서버 사용하는 이유

  1. 정적자원과 동적자원의 분리 이미지나 CSS 같은 정적 resource에 대한 요청들을 Nginx가 맡고, 동적 자원들은 Application 서버에서 맡는다. 이렇게 분할해서 보다 효율적으로 서버를 관리하는 용도

  2. Reverse Proxy Server로서의 역할 Request와 Response를 중개하는 리버스 프록시 서버로 동작하게 할 수 있다. 프록시(Nginx)를 두는 이유는 request에 대한 버퍼링이 있기 때문이다.

클라이언트가 직접 App 서버에 직접 요청하는 경우, 프로세스 1개가 응답 대기 상태가 되어야만 한다. 따라서 프록시 서버를 둠으로써 요청을 배분 하는 역할을 한다 이를 이용해 캐시 처리를 할 수 있고 로드 밸런싱 기능, 암호화 기능 등 처리할 수 있으며, 웹 서버가 사용되는 가장 큰 이유 중 하나이다.


** Forward Froxy**

  • Forward Proxy 는 클라이언트가 요청하는 End Point 가 실제 서버 도메인이고 프록시는 둘 사이의 통신을 담당해준다.
  • Reverse Proxy 는 클라이언트가 요청하는 End Point 가 프록시 서버의 도메인이고 실제 서버의 정보는 알 수 없다.

  • Forward Proxy 는 클라이언트가 감춰진다. 요청 받는 서버는 포워드 프록시 서버를 통해서 요청을 받기 때문에 클라이언트의 정보를 알 수 없다.
  • Reverse Proxy 는 서버가 감춰진다. 클라이언트는 리버스 프록시 서버에게 요청하기 때문에 실제 서버의 정보를 알 수가 없다.