리버스 프록시(Reverse Proxy)는 보안 강화, 로드 밸런싱, 동적 콘텐츠 최적화, 애플리케이션 서버 최적화 등 다양한 이점을 제공하여 사이트 성능을 향상시키고자 하는 분들에게 유용합니다.
저도 OpenLiteSpeed 웹 서버로 전환하면서 리버스 프록시를 설정하려고 노력했습니다. Nginx, Apache HTTP Server, Haproxy, Caddy 등 여러 가지를 시도해 보았지만, 설치와 구성은 완료했음에도 불구하고 연결이 제대로 이루어지지 않아 결국 포기하게 되었습니다.
OpnLiteSpeed 웹 서버를 사용하고 있기 때문에 Webadmin 관리 도구에서 가능한지 확인해본 결과, 구성이 가능하다는 것을 알게 되었습니다. 그러나 이 구성 방법은 기본 설정 외에 추가적인 설정이 필요합니다.
CDN을 사용할 경우, 캐싱 만료와 동적 및 정적 콘텐츠 캐싱 구성을 분리해야 하므로 아래에 설명된 기본 구성만으로는 리버스 프록시가 제대로 작동하지 않을 수 있습니다.
그런데 기본 구성 방법을 설명하는 이유는 OpenLiteSpeed WebAdmin 관리 도구를 이용한 리버스 프록시 구성 방법에 대한 자료가 거의 없기 때문입니다. 이 글은 기본 구성 방법을 잘 모르시는 분들을 위해 작성되었으며, 세부적인 시스템에 맞는 설정은 포함되어 있지 않음을 참고하시기 바랍니다.
목차
리버스 프록시의 장점
- 보안 강화: 리버스 프록시는 실제 웹 서버를 외부로부터 숨기고, 보안 위협을 차단하는 역할을 합니다. 그리고 악성 요청을 필터링하거나 SSL 종료, 웹 애플리케이션 방화벽(WAF)를 설정하여 보안을 제공합니다.
- 로드 밸런싱: 리버스 프록시는 여러 서버로 트래픽을 분산시켜, 서버 부하를 효율적으로 관리하고 웹사이트의 성능을 높입니다. 특히, 동적 콘텐츠가 많은 경우 로드 밸런싱이 유효합니다.
- 동적 콘텐츠 최적화: 리버스 프록시는 서버에서 생성되는 동적 콘텐츠를 처리하거나 캐시할 수 있습니다. 또한, SSL 종료나 쿠키 관리 등의 기능을 제공하여 서버 성능을 향상사킵니다.
- 애플리케이션 서버 최적화: 여러 백엔드 서버와 통합되어, 애플리케이션의 복잡한 요청을 최적화할 수 있습니다. 이는 대규모 시스템에서 중요한 역할을 합니다.
간단하게 정리하면, 보안을 강화할 수 있고 동적 콘텐츠와 트래픽 관리가 필요한 경우 리버스 프록시를 사용하는 것이 좋습니다.
OpenLiteSpeed Webadmin 접속
OpenLiteSpeed 웹 서버를 구성하셨다면 OpenLiteSpeed WebAdmin에 접속하는 방법을 아실 것이라 생각합니다. 만약 모르시는 분들을 위해 설명드리자면, 브라우저의 주소창에 IP 주소 :7080(ex.123.12.23.24:7080)을 입력하면 위와 같은 로그인 화면이 나타납니다.
만약에 처음 접속하시는 분들이라면 비밀번호를 모르실 수 있는데 LiteSpeed WebAdmin 관리자 패널에 접속하는 방법을 정리 게시물을 참고하시면 됩니다.
Web Server 설정에서 서버 추가하기
리버스 프록시를 구성하기 위해서는 먼저 대상 서버를 추가해야 합니다. OpenLiteSpeed WebAdmin에 접속한 후, 왼쪽 메뉴에서 ‘Server Configuration’을 선택하고 상단 카테고리에서 ‘External App’으로 들어가시면 됩니다.
External App에 들어갔다면 오른쪽에 있는 + 버튼을 눌러 추가하시면 됩니다.
+ 버튼을 누르면 New External App 화면이 나타나며, 여기서 Type을 Web Server로 선택하고 오른쪽 상단에 다음 버튼을 누르시면 됩니다.
Type를 Web Server로 선택하게 되면 위와 같은 설정 화면이 나오게 되는데 아래와 같이 입력하시면 됩니다.
- Name: Proxy_backend
- Address: 127.0.0.1:80
- Max Connections: 100
- Initial Request Timeout: 60
- Retry Timeout: 0
- Response Buffering: NO
여기 설정에서 중요한 것은 Address를 자신의 시스템에 맞게 설정해야 한다는 점입니다. 기본적으로 127.0.0.1:80 또는 8080 포트로 수신하도록 설정하여 localhost:8080으로 사용할 수 있습니다.
만약 HTTPS로 수신되는 요청을 처리하고 싶다면, 127.0.0.1:443으로 설정하시면 됩니다. 이 부분은 정답이 하나가 아니므로, 본인에게 적합한 형식으로 설정해야 합니다.
모든 설정을 입력하셨다면, 오른쪽 상단에 있는 저장 버튼을 클릭하여 마무리하시면 됩니다. 이제 대상 서버를 추가했으므로, Context를 설정하여 리버스 프록시를 적용하시면 됩니다.
Context 정의 설정하기
리버스 프록시를 적용하기 위해서는 Context를 정의해야 합니다. 이를 위해 Virtual Hosts 설정으로 들어가 도메인을 선택한 후, 상단에서 Context를 선택하고 + 버튼을 눌러 추가하시면 됩니다.
+ 버튼을 누르게 되면 New Context 화면으로 넘어가게 되는데 여기서 Type을 Proxy로 선택하시면 됩니다. 그 다음 오른쪽 상단에 있는 다음 버튼을 클릭하시면 됩니다.
다음 버튼을 누르면 Proxy Context Definition 설정으로 이동하게 됩니다. 여기서 URL에 ‘/’를 입력하시고, 위에서 만든 대상 서버를 선택하시면 됩니다. 그 후, 오른쪽 상단에 있는 저장 버튼을 클릭하시면 됩니다.
이제 OpenLiteSpeed WebAdmin의 왼쪽 상단에 있는 IP 주소를 클릭하여 서버를 재시작해 주시면 됩니다. 이렇게 하면 모든 기본 구성이 완료됩니다.
위의 구성으로 리버스 프록시가 작동할 수 있지만, 시스템 환경에 따라 추가적인 설정이 필요할 수 있습니다. 따라서 자신의 시스템 환경으로 검색해서 설정 값을 찾아보시기 바랍니다.
▶ OpenLiteSpeed 웹서버에서 CORS 오류 해결하는 방법
▶ OpenLiteSpeed에서 HTTPS 리다이렉트 안될 때 해결 방법
▶ 라이트세일에 OpenLiteSpeed(OLS) 웹 서버를 설치하는 방법