리버스 프록시란?
리버스 프록시는 인터넷으로부터 요청을 받아와서 이것들을 내부망의 서버로 바로 포워드한다. 프록시에 요청을 하는 대상은 내부망을 인지하지 못할 수 있다. - 위키백과
리버스 프록시는 클라이언트가 웹 서비스에 요청하면 이 요청을 받아서 내부 서버에서 데이터를 받은 후에 요청에 대한 응답을 사용자에게 다시 전달한다. 즉 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 등의 암호화와 복호화를 해주므로 본래 서버의 부담을 줄여줄 수 있다.
참고
2. https://www.lesstif.com/system-admin/forward-proxy-reverse-proxy-21430345.html
3. https://narup.tistory.com/238
'DevOps' 카테고리의 다른 글
따라하며 배우는 도커와 CI 환경 - 1. 도커란 (0) | 2023.03.03 |
---|---|
Github Actions CI/CD 알아보기 - 1 (1) | 2023.02.24 |
배포전략 - 카나리 배포전략 (0) | 2023.02.18 |
SSH 터널링(포트 포워딩) (1) | 2023.02.04 |
SSH 계정 및 DB 서버 계정 생성 및 DB 외부 접속 허용하기 (0) | 2023.01.19 |