infinity : 무한한 성장가능성
프록시 본문
요번에 진행한 개발건이 회사 내부망에 있는 api를 호출하는 것이 아닌 외부 api를 호출해야 하는 건이라
로컬에서는 잘 되던게 외부 api 호출 시 잘 되지 않아 보안팀 쪽에 해당건을 문의하며 네트워크 지식이 많이 부족하다는 것을 다시한번 느꼈다. 똑같은 경험을 다시 하고 싶지 않아서 최근에 네트워크 강의를 두 개 구매했는데..ㅎ 그전에 헷갈렸던 개념들에 대해 다시 한번 짚고 넘어가 보려고 한다.
프록시(Proxy)란?
프록시(Proxy) : "시스템의 일부 기능을 다른 것이 임시로 대행하는 것", 특해 네트워크에서 빠른 엑세스나 안전한 통신등을 확보하기 위한 중계서버를 "프록시 서버" 라고 한다.
즉, 클라이언트가 프록시 서버를 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 한다.
프록시(Proxy) 의 종류
포워드 프록시
- 클라이언트 쪽 프록시
- 클라이언트 대신 프록시 서버가 목적 서버에 통신을 해주는 구성
- 프록시를 사용하지 않는 경우
- 서버 쪽에서 클라이언트의 IP를 알 수 있음
포워드 프록시를 사용하지 않은 경우
포워드 프록시를 사용하는 경우
외부 액세스시 프록시 서버를 경유하므로 프록시 서버에서 요청에 따른 필터링이 가능하다.
( 내가 개발할 때도 프록시를 통해 외부 api 를 호출했는데, 클라이언트 -> 프록시 -> api 요청할 서버라면 프록시에서 해당 api 서버에 요청이 나갈 수 있도록 연결이 되어야 외부 api 서버로 요청을 보낼 수 있게 된다.
이렇게 할 경우 외부 api 서버에서는 클라이언트의 ip를 모르기 때문에 보안상 안전하다는 장점 또한 있을 것 같다.)
포워드 프록시의 장점
1. 캐시 저장
-> 프록시 서버에 캐시를 저장할 수 있음
-> 다시 동일한 페이지를 리퀘스트했을 때 캐시에 남아있는 정보를 클라이언트에게 주기 때문에 실제 호출하려는 서버에 요청하지 않아도 되고, 속도가 빨라지게 된다.
2. URL 필터링
-> 외부 요청 url을 필터링할 수 있음
- 리버스 프록시
웹 서버 쪽에 위치하여 클라이언트의 접근을 받아 요청에 해당하는 Web 서버에 배분해주는 역할을 한다.
위 사진의 경우, 클라이언트에서 프록시 서버에 요청을 하면 요청에 따라 알맞은 서버에 프록시 서버가 다시 요청을 보내
클라이언트에게 등답을 전달 해 준다.
클라이언트의 입장에서 프록시 서버가 Web 서버와 같은 동작을 하기 때문에 Web 서버가 여러 개 존재하는 것을 알 수 없다.
리버스 프록시의 장점
1. 부담분산-> 설정으로 정적 콘텐츠와 동적 콘텐츠의 요청을 처리하는 서버를 나누어 메모리 사용량의 효율화를 할 수 있음
2. 캐시의 저장 포워드 프록시와 동일하게 프록시 서버가 저장했던 요청을 돌려준다.
간단하게 프록시에 대해 공부했는데 추후 방화벽, 인바운드, 아웃바운드 관련 내용도 정리해보려고 합니다.
틀린점은 댓글로 남겨주시면 감사하겠습니다. 🙇♂️