프록시서버란?
- 클라이언트와 서버 사이에 중간에 존재하는 서버로 다양한 역할을 함
- 클라이언트와 서버를 중계해주는 역할
프록시서버 역할 및 사용 이유
- 캐쉬 : 퍼포먼스 향상을 위해 쓰임
- 보안 : 프록시 서버 경유 시 IP를 숨길 수 있음(익명화), 프록시 서버를 방화벽으로 이용하기도 함
- 트래픽 분산
- 접속 우회
- 필터(접근 제어) : 보안성 향상, 프록시를 통한 모든 요청/응답 로깅
종류
포워드프록서(forwawrd proxy)
- 클라이언트와 서버 사이에 위치해서 클라이언트처럼 행동
- 일반적으로 말하는 프록시
- 캐싱 : 클라이언트가 서버에 요청하면 클라이언트가 요청을 받아 자원을 가져와 클라이언트에 전달해줌(불필요한 전송 감소, 외부 요청 감소)
- 익명성 : 서버가 요청받은 IP = 프록시 IP(사용자 컴퓨터, OS정보, 이메일 주소, Referer헤더, 쿠키 헤더 등 제거)
- 클라이언트 대신 서버에 요청을 보내줌(client - proxy - internet - server)
- ISP 지점에 위치, 출구(Egress) 프록시는 방화벽 혹은 트래픽 성능 개선 목적으로 로컬네트워크 출구에 설치되기도 함
- 필터링
리버스 프록시(Reverse proxy)
- 클라이언트가 보기엔 하나의 서버이지만 뒤에 여러 물리적 서버가 존재, 앞단에서 서버들을 보호하고 제어함
- 클라이언트는 리버스 프록시 서버를 목적지 서버로 하여 통신함
- 콘텐츠 라우터 : 특정 콘텐츠의 요청을 특정 웹 서버로 유도(가까운 캐시 서버로 유도하는 등)
- 웹 캐시: 자주 요청되는 데이터의 로컬 사본을 관리하여 해당 요청이 있을 때 빠르게 응답
- 보안 : 실제 서버들의 IP가 클라이언트에게 노출되지 않음
- 암호화
- 로드밸런싱 등의 역할을 수행 (client - internet - proxy - server)
- 특정 데이터 접근 제어, 보안 방화벽
참고
로드밸런싱이란?
방화벽(firewall)
- 특정 기준으로 트래픽을 차단(신뢰할 수 있는 내부 네트워크, 신뢰할 수 없는 외부 네트워크간의 장벽을 구성)
- 예를들어 웹서버인데 POP이나 Telnet의 요청까지 열어둘 필요가 없는 경우 HTTP 외에 모두 차단할 수 있음
- 다양한 계층에서 작동하지만 대부분은 Transport layer에서 작동, 특정 IP주소의 차단 혹은 특정 포트로의 접근을 모두 차단한다.
ex) port80은 허용, port445(파일서버)로의 접근은 차단. - 접근 통제(패킷 필터링), 사용자 인증, 프록시 기능, 주소변환 기능(NAT), 감사 및 로깅 등
- DMZ와 포트주소변환(PAT)
'CS' 카테고리의 다른 글
[OS] 동기와 비동기 (0) | 2021.04.03 |
---|---|
[DB] SQL - Join 의 종류 (0) | 2021.04.02 |
브라우저 작동 과정 (0) | 2021.03.29 |
[네트워크] HTTP 메소드 :: PUT, POST, PATCH 차이 (0) | 2021.03.27 |
[DB] 데이터베이스 샤딩(Sharding)과 파티셔닝(Partitioning) (0) | 2021.03.25 |