반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

웹풀스택 공부 중

Proxy란? 본문

웹개발/웹 개념

Proxy란?

lukeit 2024. 8. 23. 18:27

서버 부하 완하 및 보안 (요청/응답 변조)를 위함

Proxy 사용 이유

  • 보안:
    • IP 숨기기 및 프록시 서버를 방화벽으로 사용가능 (= Proxy Firewall: 프록시 방화벽)
  • 속도 (캐시):
    • 동일 요청이 들어오면 서버에 따로 접속할 필요 없이 (Proxy Server에) 저장된 Cache 자원을 반환한다
    • 전송 시간 절약 및 외부 트래픽을 줄여 네트워크 병목 현상 방지 = 서비스의 속도를 높여준다
      • 네트워크 병목 (Bottleneck) 현상: 전체 시스템의 성능이나 용량이 하나의 요소로 인해 제한 받는 현상
  • ACL (Access Control List):
    • 사이트 접근 범위 정책 정의: Proxy Server에 접속할 수 있는 범위를 설정하는 옵션
    • Subnet 단위의 방화벽이다
  • Log / Audit:
    • 리포트, 모니터링 용도
    • 회사 내 직원들의 인터넷/인트라넷 사용을 리포팅할 수 있다
  • 지역 네트워크 제한 우회
    • 한국에서는 접속이 제한된 사이트를 Proxy Server를 사용해 우회할 수 있다

Proxy는 Forward Proxy (Client-side) 와 Reverse Proxy (Server-side)로 나뉜다


Forward Proxy

  • 요청 보내는 측: WB (= Client)
    • 요청에 대한 세부적인 추가 작업이 가능하다
      • 클라이언트 은닉: IP 변환을 통해 원 요청자를 은닉할 수 있다
      • 클라이언트 접근 제어: 특정 IP혹은 웹 페이지에 대한 접근 금지
        • 우회 (Bypass): 특정 클라이언트의 IP가 블락 되어있다면, 그걸 피해서 접속하기 위해 IP를 감출 수 있다
      • 캐싱: 클라이언트가 받을 응답을 중간에 임시 저장한다
        • 주요기능은 아니다

Reverse Proxy

  • L2 Reverse Proxy (= Load Balancer)
  • 요청 받는 측: WS
    • 요청에 대한 세부적인 추가 작업이 가능하다
      • 요청 전달: URL/I Mapping (URI 기반 Routing), 로드 밸런싱 (요청 분산)
        • Load Balancing (요청 분산) = 웹 서버 부하 완하
        • 웹 서버 수 동적으로 늘리기 = SRE
          • SRE (Site Reliability Engineering) in Proxy Server:
            1. Availability and Reliability
            2. Performance Optimiation
            3. Security
            4. Monitoring and Logging
            5. Scalability
            6. Automation and Configuartion Management
      • 요청 변환
        • X-forwarded-for: Used to identify the originating IP address of a client connecting to a web server through an HTTP proxy or load balancer
          • 누가 요청했는지 알 수 있다
          • ex.) x-forwarded-by를 사용해서 123,456,789,421를 WS가 받앗을때
            • 가장 첫번째로 요청 날린 IP = 421
            • 가장 마지막으로 요청 날린 IP = 123
          • WB는 자신이 원할때 Forward Proxy에 저장할지, 말지 정할 수 있다
            • 저장시에 Reverse Proxy에서 Forward Proxyt를 통해 IP를 가져올 수 있따
        • X-forwarded-by란?
          • tells you specifically which proxy or load balancer forwarded the request to the server
            • by: 어떤 프록시나 로드밸런서가 요청을 보냈는지
            • for: 어떤 Client가 요청을 보냈는지
      • 서버 은닉
        • 서버의 고유 IP가 외부로 노출되지 않음
      • 서버 접근 제어 (요청 필터링)
        • DDos 방지: Traffic 제어
          • Rate Limiting: 짧은 시간내 너무 많은 요청이 오늘걸 막기 위한 정책
          • WAF (Web Application Firewall):
            • Honeypot (악성 IP 리스트)를 활용한 블럭
            • Custom IP 추가하여 블럭
        • Response Max Size 세팅: 너무 큰 파일을 반환하는 경우 블락 (Nginx 설정으로 막을 수 있다)
        • Timeout Setting (Nginx Setting으로 막을 수 있다)
      • 보안: HTTPS
        • Reverse Proxy를 사용하지 않았을때 단점:
          • 모든 WS가 Private Key를 가지고 있어야한다
            • 껐다 킬때마다 매번 키를 넣어줘야한다
        • 하지만 한 서버 (= Reverse Proxy)가 Private Key를 가지고 있으면 관리 및 인증이 매우 간편해진다
          • 클라이언트가 자주하는 요청에 대한 응답을 중간에 임시 저장할 수 있다
          • Reverse Proxy가 키를 가질 대리자 역할을 하여 WS가 키를 가질 필요가 없다

CDN (Content Delivery Network)

  • L1 Reverse Revrse Proxy
  • How CDN Works:
    • CDN: used whenever HTTP traffic is serverd
      • Brings content closer to the user
      • Increases the conversion rates
      • Deploys servers acrosss the world
        • Every user can instead access to Edge Server
          • Edge Server = CDN Server이 Edge Server의 집합이다
        • Reduces the latency for the user for TCP Connection
        • Improves Availiability by having multiple copies
          • having copies = good for fault tolerance
  • Proxy는 캐싱 + 요청에 대한 세부적인 추가 작업을 위해 사용한다
    • 캐싱: 요청에 따른 응답을 중간에 저장해둔 뒤, 동일 요청 시 저장 값을 반환한다
    • 세부적인 추가작업: 요청 변환, 필터 등 추가 작업을 수행한다
  • CDN은 캐싱 + 지역성 해결을 위해 사용한다
    • 캐싱: 요청에 따른 응답을 중간에 저장해둔 뒤, 동일 요청 시 저장 값을 반환한다
      • 원본 데이터를 가진 WS에 문제가 생기면 CDN이 대신 응답을 반환하여 *고가용성(High Availibtiliy) 보장 *
        • CDN: 고가용성을 보장해주는 버퍼의 역할
      • 원본 데이터를 가진 WS에 DDos 공격이 가해지는걸 CDN이 대신 방어가능!
    • 지역성 해결: HTTP Resource 제공 서버와 Client가 멀리 떨어진 경우, Client에 가까운 곳에 캐싱 가능하다
      • 전 세계적으로 캐시 서버를 곳곳에 두어 캐시 서버 내 응답 데이터를 캐싱 (저장) 한다면 속도가 빨라진다!

L1과 L2가 뭐지...?

반응형

'웹개발 > 웹 개념' 카테고리의 다른 글

Web Storage와 Session이란?  (0) 2024.08.25
Cookie(쿠키)란?  (0) 2024.08.25
Load Balancer와 배포방식의 기초  (0) 2024.08.16
Infrastructure: 서버의 구성 기초  (0) 2024.08.16
운영체제 (OS) 와 프로그램의 기초  (0) 2024.08.16