회사 회의중 생소한 용어여서 간단하게 정리를 해보았습니다
Proxy
대리의 의미로 클라이언트와 Web서버의 중간에 위치하고 있어 대신 통신을 받아주는 것이 프록시이다.
프록시는 포워드 프록시와 리버스 프록시로 나눠져 있고 기본적으로 포워드 프록시는 클라이언트 리버스 프록시는 서버 쪽의 설정을 한다.
포워드 프록시
리버스 프록시
Proxy 사용 목적
보안 - 서버의 IP를 숨기는 것이 가능하고 외부로부터 위협을 막아주는 역할을 한다.
캐시 - 프록시 서버에 요청이 된 내용들을 캐시를 이용해 저장해두고 다시 데이터를 가져올 상황이 발생하지 않기 때문에 전송시간을 절약할 수 있다.
로그 - 프록시 서버에게 클라이언트의 기록이 남아있어 어떤 IP에서 어떤 IP로 얼마나 접속해 있는지 확인할 수 있고 특정 IP가 방문할 수 있는 웹사이트 제한도 가능
HAProxy
- L4, L7 같은 하드웨어 로드밸런서를 대체하기 위한 오픈소스로 리버스 프록시를 기반으로한 소프트웨어 로드밸런서
- 서버 앞단에 존재하며 서버로 오는 요청을 대신 받아 뒷단의 서버에 전달하고 결과를 리턴받아 요청한 곳에 다시 전달하는 역할을 한다.
- Nginx에 비해 Active Health Check가 가능하므로 좀 더 안정적으로 사용할 수 있으며 HAProxy 설정 추가를 통해 Scale-Out도 가능하다.
- HTTP 통신의 경우 Web-Server (Nginx, Apache 등)를 이중화 할 수 있으며 TCP Socket 통신에 대해서도 이중화 처리 가능하다.
- C 언어로 개발되어 속도면에서 빠르다.
동작 방식
- client가 특정 작업을 요청한다.
- 프론트엔드 서버는 요청을 받고 전달할 곳을 결정한다. (로드밸런싱)
- 백엔드 서버는 요청을 처리하고 응답 결과를 생성한다.
- 백엔드 서버는 프론트엔드 서버에 응답을 반환하고, 프론트엔드 서버는 client에게 응답 결과를 전달한다.