Nginx란 트래픽이 많은 웹사이트의 서버(WAS)를 도와주는 비동기 이벤트 기반구조의 경량화 웹 서버 프로그램입니다. 클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용되기도 하고, 또는 Reverse Proxy Server로 활용하여 WAS의 부하를 줄일 수 있는 로드밸런서 역할을 하기도 합니다.
프록시의 사전적 의미는 '대리', '대신'입니다. 보안상의 문제로 직접 통신을 주고받을 수 없는 두 PC 사이에서 통신을 할 때 직접 하지 않고 중간에서 대리로 중계를 하는 개념을 '프록시'라고 합니다. 이렇게 중계 기능을 하는 것을 '프록시 서버'라고 부릅니다.
프록시 서버는 서버가 어디에 위치하느냐에 따라 포워드 프록시와 리버스 프록시로 나뉩니다.
클라이언트에서 서버로 리소스를 요청할 때 직접 요청하지 않고 프록시 서버를 거쳐서 요청합니다. 이 경우 서버에서 받는 IP는 클라이언트의 IP가 아닌 프록시 서버의 IP이기 때문에 서버는 클라이언트가 누구인지 알 수 없습니다. 따라서 서버에게 클라이언트가 누구인지 감춰주는 역할을 합니다.
예를 들어 사용자가 google.com 에 연결하려고 하면 사용자 PC 가 직접 연결하는게 아니라 포워드 프록시 서버가 요청을 받아서 google.com 에 연결하여 그 결과를 클라이언트에 전달(forward) 해 줍니다.
포워드 프록시는 대개 캐싱 기능이 있으므로 자주 사용되는 컨텐츠라면 월등한 성능 향상을 가져올 수 있으며 정해진 사이트만 연결하게 설정하는 등 웹 사용 환경을 제한할수 있으므로 보안이 매우 중요한 기업 환경등에서 많이 사용합니다.
리버스 프록시는 포워드 프록시와 반대 개념입니다. 애플리케이션 서버의 앞에 위치하며 클라이언트가 서버를 요청할 때 리버스 프록시를 호출하고 리버스 프록시가 서버로부터 응답을 전달받아 다시 클라이언트에게 전송하는 역할을 합니다.
이 경우, 클라이언트는 애플리케이션 서버를 직접 호출하는 것이 아니라 서버를 통해 호출하기 때문에 리버스 프록시는 애플리케이션 서버를 감추는 역할을 하게 됩니다.
예를 들어 리버스 프락시로 웹 서버를 설정할 경우 사용자가 example.com 웹 서비스에 데이타를 요청하면 Reverse Proxy 는 이 요청을 받아서 내부 서버(보통 WAS 입니다)에서 데이터를 받은후에 이 데이터를 사용자에게 다시 전달하게 됩니다.
깃액션 CI/CD (0) | 2024.02.09 |
---|---|
냉집사 Query Dsl 정리 (1) | 2024.02.09 |
데이터 접근 기술 - 테스트 (2) | 2024.02.05 |
MyBatis (0) | 2024.02.02 |
Jdbc Template (0) | 2024.02.02 |