
클라이언트 요청을 대신 받아 내부 서버로 전달 해주는 것을 리버스 프록시라고 한다.
ex) localhost:3000 웹서버를 열어 운영, 사용자가 급증
-> 웹서버가 그대로 노출되어 있기 때문에 보안적으로 위험성 있다.
nginx를 사용하면 로드 밸런싱으로 부하를 줄여줄 수 있고, 분산 처리 또한 가능하며 웹서버의 SSL 인증도 적용할 수 있다.
- 로드 밸런싱 : Nginx는 클라이언트의 요청을 프록시 서버에 분산하기 위해 로드 밸런싱을 수행하여 성능, 확장성 및 신뢰성을 향상시킬 수 있다.
- 캐싱 : Nginx 를 역방향 프록시로 사용하면 미리 렌더링된 버전의 페이지를 캐시하여 페이지 로드 시간을 단축할 수 있다. 이 기능은 프록시 서버의 응답에서 수신한 콘텐츠를 캐싱하고 이 콘텐츠를 사용하여 매번 동일한 콘텐츠를 프록시 서버에 연결할 필요 없이 클라이언트에 응답하는 방식으로 작동한다.
- SSL 터미네이션: Nginx는 클라이언트와의 연결에 대한 SSL 끝점 역할을 할 수 있다. 수신 SSL 연결을 처리 및 해독하고 프록시 서버의 응답을 암호화한다.
- 압축: 프록시 서버가 압충된 응답을 버내지 않는 경우 클라이언트로 보내기 전에 응답을 압축하도록 Nginx를 구성할 수 있다.
- DDos 공격 완화: 수신 요청과 단일 IP 주소당 연결수를 일반 사용자에게 일반적인 값으로 제한할 수 있다. 또한 Nginx를 사용하면 클라이언트 위치와 User-에이전트 및 Referer와 같은 요청 헤더 값을 기준으로 엑세스를 차단하거나 제한할 수 있다.