ServBay에서 리버스 프록시 설정: 내부망 또는 원격 웹사이트를 로컬로 매핑하여 개발 및 디버깅하기
ServBay는 macOS 전용으로 설계된 로컬 웹 개발 환경으로, PHP, Node.js, Python, Go, Java 등 다양한 언어 환경과 MySQL, PostgreSQL, MongoDB, Redis 등 데이터베이스를 통합 제공합니다. 단순히 로컬 코드 프로젝트를 호스팅하는 것 외에도 ServBay는 강력한 리버스 프록시 기능을 지원합니다. 이를 통해 내부망, 가상머신, 컨테이너, 또는 원격 서버에 위치한 웹사이트를 손쉽게 로컬 ServBay 환경으로 매핑하여 개발과 디버깅, 접근 과정을 크게 간소화할 수 있습니다.
이 문서는 ServBay에서 리버스 프록시를 설정하는 방법을 상세히 안내하여, 내부망 또는 기타 접근 가능한 주소의 웹사이트를 로컬에 프록시하여 통합 관리와 효율적인 개발·디버깅 환경을 구축하는 데 도움을 드립니다.
개요
리버스 프록시 서버는 클라이언트(예: 브라우저)로부터 요청을 받아 여러 백엔드 서버(여기서는 프록시할 내부망 또는 원격 웹사이트)로 전달합니다. ServBay는 내장 웹 서버(Caddy 또는 Nginx)를 이용해 이 기능을 제공합니다.
로컬 개발 환경에서 리버스 프록시를 설정하면 다음과 같은 주요 이점이 있습니다.
- 통합 접근 포인트: 로컬 ServBay의 도메인으로 모든 내부 및 외부 리소스에 접근할 수 있어 복잡한 IP 또는 포트를 외울 필요가 없습니다.
- 간편한 SSL 설정: ServBay의 SSL 관리 기능(ServBay CA 또는 ACME)을 활용해 프록시된 웹사이트에도 HTTPS로 접근할 수 있습니다. 백엔드 웹사이트가 HTTP만 지원해도 안전하게 적용 가능합니다.
- 로컬화된 디버깅: 리모트 또는 내부망 웹애플리케이션을 로컬 브라우저 환경에서 쉽게 디버깅할 수 있습니다.
- 네트워크 제한 우회: 특정 환경에서는 로컬 개발 환경에서 사내망 등 제한된 네트워크의 리소스에 편리하게 접근할 수 있습니다(ServBay가 실행되는 머신에서 대상 주소에 접근 가능해야 함).
사전 준비
리버스 프록시 설정을 시작하기 전에 다음 조건을 충족하는지 확인하세요.
- ServBay 설치 및 실행: macOS에 ServBay 애플리케이션이 정상적으로 설치되어 있고 실행 중이어야 합니다.
- 대상 웹사이트 접근 가능: 프록시하려는 내부망 또는 원격 웹사이트가 정상적으로 운영 중이며, ServBay가 실행되는 macOS에서 해당 사이트의 IP/도메인 및 포트에 네트워크를 통해 직접 접근할 수 있어야 합니다. 예를 들어, 대상이
192.168.1.100:8080
이라면, macOS에서192.168.1.100
에 ping 또는192.168.1.100:8080
에 접속이 되어야 합니다.
리버스 프록시 웹사이트 추가 단계
ServBay에서 리버스 프록시 웹사이트를 설정하는 자세한 단계는 다음과 같습니다.
1단계: ServBay 관리 인터페이스 열기
macOS의 애플리케이션 폴더에서 ServBay
아이콘을 찾아 더블클릭해 앱을 실행하세요.
2단계: 웹사이트 관리로 이동
ServBay를 실행하면 메인 화면이 나타납니다. 좌측 네비게이션 메뉴에서 웹사이트
를 클릭하세요. 이곳에서 로컬 호스팅 및 리버스 프록시 웹사이트를 모두 관리할 수 있습니다.
3단계: 새 웹사이트 추가
웹사이트 관리 페이지 하단의 +
버튼을 클릭하세요. 클릭하면 우측 영역에 새 웹사이트를 설정할 수 있는 폼이 펼쳐집니다.
4단계: 웹사이트 리버스 프록시 설정 구성
새 웹사이트 폼에서 아래 항목을 입력하여 리버스 프록시 동작을 정의합니다.
- 이름 (Name): 프록시 웹사이트를 식별할 수 있는 쉬운 이름을 지정하세요. 예:
Internal Backend Proxy
- 도메인 (Domain): 로컬에서 해당 프록시 웹사이트에 접속할 도메인을 입력하세요. 예:
backend.servbay.demo
또는proxy.to.local
. ServBay는 입력한 로컬 개발 도메인을 자동으로 시스템hosts
파일에 등록하여127.0.0.1
또는::1
로 연결되도록 합니다. - 프로토콜 (Protocol): 지원할 프로토콜을 선택하세요. 보통
HTTP/HTTPS
를 선택해 두 프로토콜 모두 지원합니다. 설정에 따라 ServBay가 SSL을 자동 처리합니다. - SSL 인증서 요청 방식 (SSL Certificate Request Method):
- ServBay CA (로컬 개발에 권장): 선택 시, ServBay 자체 CA를 통해 SSL 인증서를 자동으로 생성·관리합니다. 매우 편리하며, 인증서 경고를 피하려면 브라우저 또는 시스템에서 ServBay CA 루트 인증서를 신뢰해야 합니다.
- ACME (Let's Encrypt): 공용 도메인 및 인터넷에서 접근 가능한 경우 선택해 무료 공용 SSL 인증서를 발급받을 수 있습니다.
- 수동 (Manual): 자체 보유 중인 SSL 인증서 파일(
.crt
,.key
,.ca-bundle
)이 있다면 직접 업로드·설정 가능합니다. 로컬 개발이나 내부망 프록시엔ServBay CA
사용을 강력히 권장합니다.
- 웹사이트 유형 (Website Type):
리버스 프록시 (Reverse Proxy)
를 선택합니다. 이 선택이 프록시 설정의 핵심입니다. - 프록시 대상 (Proxy Target): 프록시하려는 내부망 또는 원격 웹사이트의 전체 주소를 입력하세요.
IP:Port
형태나 프로토콜이 포함된 전체 URL 모두 입력 가능합니다.- 예시 1 (IP:Port):
192.168.1.100:8080
- 예시 2 (프로토콜이 포함된 URL):
http://192.168.1.100:8080
- 예시 3 (내부망 호스트명):
backend.internal:8443
(ServBay 서버가 해당 호스트명을 해석 가능해야 함) - 예시 4 (원격 URL):
https://api.example.com
입력한 주소가 반드시 ServBay가 실행 중인 머신에서 네트워크로 직접 접근 가능해야 합니다.
- 예시 1 (IP:Port):
5단계: 구성 완료 및 저장
필수 정보를 모두 입력한 뒤 폼 하단에서 추가(Add)
버튼을 클릭하세요. ServBay는 구성을 자동 저장하고, 내장 웹 서버(Caddy 또는 Nginx)에 대응하는 리버스 프록시 규칙을 생성합니다.
저장이 완료되면 새로운 리버스 프록시 웹사이트가 웹사이트 목록에 표시됩니다.
6단계: 리버스 프록시 웹사이트 접근
구성이 끝나면, 브라우저 주소창에 4단계에서 설정한 도메인(예: proxy.to.local
또는 backend.servbay.demo
)을 입력해 프록시된 내부망 또는 원격 웹사이트에 접근할 수 있습니다.
ServBay CA를 사용해 HTTPS를 적용한 경우, 처음 접근 시 브라우저에서 인증서 경고가 표시될 수 있는데(ServBay CA 루트 인증서를 아직 신뢰하지 않은 경우) 이는 정상입니다.
7단계: 웹사이트 빠른 작업
ServBay는 각 웹사이트별로 관리에 유용한 빠른 액션 버튼을 제공합니다.
- IDE로 웹사이트 루트 디렉토리 열기: 리버스 프록시 웹사이트의 경우 로컬 루트 디렉토리가 없어서 자주 쓰이지 않습니다.
- 브라우저로 웹사이트 열기: 기본 브라우저에서 해당 웹사이트를 신속하게 엽니다.
- 웹사이트 로그 보기: ServBay 웹 서버(Caddy/Nginx)가 기록한 접근 및 오류 로그를 확인할 수 있어 디버깅에 매우 유용합니다.
- 웹사이트 일시중지/활성화: 프록시 구성을 잠시 끄거나 켤 수 있습니다.
- 웹사이트 삭제: 해당 리버스 프록시 구성을 ServBay에서 삭제합니다.
자주 묻는 질문 및 해결 방법 (FAQ)
Q: 웹사이트에 접속이 안 되고, 브라우저에 오류가 표시됩니다.
- ServBay 상태 확인: ServBay 애플리케이션 및 웹 서버(Caddy/Nginx)가 정상 동작 중인지 확인하세요.
- 도메인 해석 확인: 브라우저에 입력한 도메인이 올바르며, 로컬 ServBay IP(보통
hosts
파일로 자동 설정됨)에 잘 매핑되는지 확인하세요. - ServBay 웹사이트 로그 확인: 웹사이트 목록에서 ‘로그 보기’ 버튼 클릭 후, ServBay 웹 서버 로그 확인. 클라이언트 요청 정보, 프록시 대상 연결 상태, 에러 등이 기록되어 문제 진단에 직접적입니다.
- 방화벽/보안 소프트웨어 확인: macOS 방화벽 또는 기타 보안 프로그램이 80 또는 443 포트의 청취를 막거나, ServBay가 프록시 대상에 연결 못하도록 차단하고 있지 않은지 확인하세요.
Q: ServBay 머신에서 프록시 대상에는 접근 가능하지만, 브라우저에서 ServBay 도메인으로 접근하면 오류가 납니다.
- 프록시 대상 형식 확인: ServBay에 입력한 ‘프록시 대상’ 주소 형식이 올바른지, 해당 주소로 ServBay 머신에서 직접 접속이 되는지 확인하세요. 터미널에서
curl [프록시 대상 주소]
로 연결 테스트 권장합니다. - 대상 서버 설정 확인: 일부 백엔드 서버는 요청의
Host
헤더를 검사합니다. ServBay는 기본적으로 클라이언트의 원본Host
헤더를 프록시 대상에 전달합니다. 만약 백엔드 서버가 특정 도메인의Host
헤더만을 허용하며, ServBay 도메인과 다를 경우 문제가 발생할 수 있습니다. ServBay의 고급 설정(직접 Caddyfile/Nginx 설정 수정 필요)에서 헤더 값을 조정하세요. - 대상 서버 방화벽 확인: ServBay 머신에서 IP/포트 접근이 되더라도 대상 서버 방화벽이 “내부망 대역만 허용” 등으로 제한할 수 있습니다. 대상 서버가 ServBay 머신의 IP 접근을 허용하는지 반드시 확인하세요.
Q: 리버스 프록시 웹사이트를 HTTPS로 접속할 때 인증서 경고가 발생합니다.
- ServBay CA 사용 시: ServBay CA는 사설 인증 기관이므로, 일반적으로 브라우저에서 기본적으로 신뢰하지 않습니다(예상되는 정상 동작). 운영체제 또는 브라우저에 ServBay CA 루트 인증서를 직접 설치/신뢰 설정해야 합니다. ServBay의 "설정"에서 CA 루트 인증서를 쉽게 설치할 수 있습니다.
- ACME (Let's Encrypt) 사용 시: 도메인이 ServBay 머신의 IP로 정확히 해석되어야 하며, ServBay의 SSL 인증서 관리에서 ACME 인증서를 정상적으로 신청·발급받아야 합니다. 신청과정에서 오류 발생 시 ServBay 로그를 참고하세요.
Q: 특정 헤더 또는 쿠키가 필요한 대상에 어떻게 프록시하나요?
ServBay의 기본 리버스 프록시 설정으로는 대부분 클라이언트의 요청 정보를 자동 전달합니다. 하지만 커스텀 요청 헤더 추가, 응답 헤더 수정, 특정 쿠키 처리, 경로 리라이트 등 복잡한 시나리오가 필요할 땐 ServBay의 고급 설정(직접 Caddyfile/Nginx 설정 파일 편집)이 필요합니다. 이 경우 Caddy 또는 Nginx 설정 문법에 대한 이해가 요구됩니다.
요약
ServBay의 리버스 프록시 기능을 활용하면 내부망, 가상머신, 컨테이너, 원격 서버의 웹사이트도 쉽고 빠르게 로컬 개발 환경으로 통합할 수 있습니다. 통합적이고 간편한 접근 포인트를 제공할 뿐 아니라, 로컬 디버깅과 SSL 구성도 간소화됩니다. 본문의 단계만 따라 하시면 리버스 프록시 웹사이트를 신속하게 설정하고 활용할 수 있습니다. ServBay의 강력한 로그 조회 및 문제 해결 기능으로 안정적 프록시 관리와 개발 효율을 극대화하십시오.