r잡초처럼
바른 프로그래밍
r잡초처럼
전체 방문자
오늘
어제
  • 분류 전체보기 (124)
    • FastAPI (7)
    • 끄적끄적 (2)
    • Python (17)
    • Django (31)
    • Database (2)
    • Docker (7)
    • 디자인패턴 (2)
    • CS 공부 (12)
      • 알고리즘 (2)
      • 자료 구조 (1)
      • 네트워크 (7)
      • IT 지식 (1)
      • 운영체제 (1)
    • 기타 팁들 (10)
    • Aws (2)
    • 독서 (1)
    • 코딩테스트 공부 (1)
      • 백준 (0)
      • 프로그래머스 (1)
    • DevOps (13)
    • TIL (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 물리 계층
  • dotenv
  • 완벽한 IT 인프라 구축을 위한 Docker
  • 파이썬 클린 코드
  • 6장
  • 상속 안티 패턴
  • 컴퓨터 기본 지식
  • 랜 카드
  • 상속과 컴포지션
  • 케이블의 종류
  • 7장
  • poetry
  • pycharm
  • fastapi
  • 랜과 왠
  • depends
  • preonboarding
  • CS 지식
  • 모두의 네트워크
  • pytest
  • query param
  • Batch
  • 책 리뷰
  • docker
  • 전기 신호
  • 5장 회사에서 하는 랜 구성
  • cp949
  • encoding
  • 네트워크
  • validate

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
r잡초처럼

바른 프로그래밍

[Nginx] 리버스 프록시란?
DevOps

[Nginx] 리버스 프록시란?

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

 

'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
    'DevOps' 카테고리의 다른 글
    • Github Actions CI/CD 알아보기 - 1
    • 배포전략 - 카나리 배포전략
    • SSH 터널링(포트 포워딩)
    • SSH 계정 및 DB 서버 계정 생성 및 DB 외부 접속 허용하기
    r잡초처럼
    r잡초처럼
    오늘보다 내일 더 나은 개발자가 되기 위한 노력을 기록하는 블로그 입니다.

    티스토리툴바