DevOps

[Nginx] 리버스 프록시란?

r잡초처럼 2023. 1. 14. 10:47

리버스 프록시란?

리버스 프록시는 인터넷으로부터 요청을 받아와서 이것들을 내부망의 서버로 바로 포워드한다. 프록시에 요청을 하는 대상은 내부망을 인지하지 못할 수 있다. - 위키백과 

리버스 프록시는 클라이언트가 웹 서비스에 요청하면 이 요청을 받아서 내부 서버에서 데이터를 받은 후에 요청에 대한 응답을 사용자에게 다시 전달한다. 즉 WAS나 WS의 앞 쪽에 리버스 프록시가 위치해 있는 형태이다. 하지만 의문이 든다. 어차피 WS가 앞쪽에 위치해서 처리해도 되는데 굳이 리버스 프록시를 쓰는 이유가 뭘까?

2. 리버스 프록시를 쓰는 이유

리버스 프록시를 쓰는 몇 가지 이유를 살펴보자

2.1 성능

2.1.1 로드 밸런싱

리버스 프록시를 둔다면 예를 들어 Nginx의 경우 로드밸런싱을 통해 대량의 요청 트래픽이 몰리는 것을 적절하게 분산시켜서 WAS에 요청할 수 있다.

2.1.2 캐싱

리버스 프록시를 사용하면 미리 랜더링 된 버전의 페이지를 캐싱하여 페이지 로드 시간을 단축할 수 있다. 

2.2 보안

2.2.1 공격자에 대한 방어

외부에서 공격이 들어올 경우 리버스 프록시가 없이 WAS가 노출되어 있다면(내부망이 아닌 외부 네트워크에 노출) WAS는 물론이고, DB까지 공격당할 위험이 있다. 리버스 프록시는 이러한 공격이 들어올 때 내부망에 있는 보안을 다시 뚫어야 하므로 보다 안전해질 수 있다.

또한 DDos 공격을 완화할 수 있다. 수신 요청과 단일 IP 주소당 연결 수를 일반 사용자에게 제한할 수 있다. 또한 Nginx를 사용하면 클라이언트 위치와 User-agent 및 Referer와 같은 요청 헤더 값을 기준으로 액세스를 차단하거나 제한할 수 있다.

2.2.2 암호화

SSL 암호화에 들어가는 자원을 줄일 수 있다. 본래 서버가 클라이언트들과 통신을 할 때 SSL/TLS로 암호화, 복호화를 할 경우 자원이 많이 소모된다. 그러나 리버스 프록시를 사용하면 내부망의 WAS 등의 암호화와 복호화를 해주므로 본래 서버의 부담을 줄여줄 수 있다.


참고

1. https://inpa.tistory.com/entry/NETWORK-%F0%9F%93%A1-Reverse-Proxy-Forward-Proxy-%EC%A0%95%EC%9D%98-%EC%B0%A8%EC%9D%B4-%EC%A0%95%EB%A6%AC

 

[WEB] 🌐 Reverse Proxy / Forward Proxy 정의 & 차이 정리

프록시(Proxy) 란? 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 프록시(Proxy)란 '대리'

inpa.tistory.com

2. https://www.lesstif.com/system-admin/forward-proxy-reverse-proxy-21430345.html

 

포워드 프록시(forward proxy) 리버스 프록시(reverse proxy) 의 차이

Web Server와 WAS 에 대해 연동하려면 Reverse Proxy 에 대한 이해가 필수입니다.

www.lesstif.com

3. https://narup.tistory.com/238

 

[Nginx] 리버스 프록시(Reverse Proxy) 개념 및 사용법

1. 개요 리버스 프록시란? 클라이언트 요청을 대신 받아 내부 서버로 전달해주는 것을 리버스 프록시(Reverse Proxy) 라고 합니다. 저도 사실 프록시라는 개념이 낯설었는데요, 일단 프록시라는 개념

narup.tistory.com