라우팅과 신뢰 프록시
루트 및 서브도메인 호스트를 라우팅하고 reverse proxy 뒤에서 배포합니다.
Proxer는 공개 요청을 호스트 기준으로 라우팅합니다. 모든 경로가 명시적이기 때문에 서로 다른 클라이언트가 섞이지 않습니다.
루트 경로와 서브도메인 경로
섹션 제목: “루트 경로와 서브도메인 경로”공개 도메인을 지정해 서버를 실행합니다.
proxer server --listen 0.0.0.0:8080 --domain proxy.example.com --token dev-token--subdomain이 없는 클라이언트는 루트 경로를 등록합니다.
proxer http 3000 --server ws://proxy.example.com:8080 --token dev-tokenproxy.example.com 요청은 이 클라이언트로 전달됩니다.
--subdomain demo가 있는 클라이언트는 demo.proxy.example.com을 등록합니다.
proxer http 3000 --server ws://proxy.example.com:8080 --subdomain demo --token dev-token알 수 없는 호스트 요청은 404를 반환합니다.
로컬 테스트
섹션 제목: “로컬 테스트”DNS 없이 테스트할 때는 호스트를 직접 지정합니다.
curl -H 'Host: demo.proxy.example.com' http://127.0.0.1:8080/localhost나 IP 기반 요청은 연결된 클라이언트로 자동 라우팅되지 않습니다.
Reverse Proxy 뒤에서 실행하기
섹션 제목: “Reverse Proxy 뒤에서 실행하기”Traefik, Caddy, NGINX 같은 reverse proxy 앞단에 Proxer를 둘 때는 원래 Host 헤더를 보존해야 합니다. Traefik에서는 보통 passHostHeader를 켜둔 기본 동작을 유지하면 됩니다.
그다음 Proxer에 어떤 프록시 주소의 forwarded 헤더를 신뢰할지 알려줍니다.
proxer server \ --listen 0.0.0.0:8080 \ --domain proxy.example.com \ --trusted-proxy loopback \ --trusted-proxy private환경변수는 comma-separated 형식입니다.
PROXER_TRUSTED_PROXIES=loopback,private,10.42.0.0/16 proxer server --domain proxy.example.com신뢰 프록시는 X-Forwarded-For, X-Real-IP, X-Forwarded-Host, X-Forwarded-Proto를 제공할 수 있습니다. 신뢰하지 않는 peer의 forwarded 헤더는 라우팅 판단에 사용하지 않습니다.
예약된 내부 경로
섹션 제목: “예약된 내부 경로”모든 Proxer 내부 엔드포인트는 /__proxer__/ 아래에 있습니다.
/__proxer__/control/__proxer__/health/live/__proxer__/health/ready이 경로를 로컬 앱으로 라우팅하지 마세요. 공개 서버가 직접 처리합니다.