콘텐츠로 이동
ProxerProxerv0.13.0

시작하기

Proxer를 설치하고 로컬 HTTP 서비스를 공개합니다.

이 문서는 가장 흔한 구성을 기준으로 설명합니다. 공개 서버는 인터넷 트래픽을 받고, 실제 앱은 노트북이나 사설망 장비에서 실행됩니다. 사설망 쪽 머신은 공개 서버로 나가는 연결만 만들면 됩니다.

  • HTTP/WebSocket 트래픽을 받을 수 있는 공개 머신 또는 reverse proxy.
  • 공개할 로컬 HTTP 서비스.
  • npm으로 설치한다면 Node.js 24 이상.

GitHub Releases에서 Windows용 단일 실행 파일을 내려받습니다.

proxer.exe --version

아래의 wss://https:// 예시는 Proxer 앞단에서 TLS를 종료한다고 가정합니다. 보통 Caddy, Traefik, NGINX, 로드 밸런서가 TLS를 처리하고, Proxer로는 loopback 또는 사설 네트워크를 통해 HTTP/WebSocket 트래픽을 넘깁니다.

  1. 공개 서버 시작

    공개 트래픽을 받을 머신에서 실행합니다.

    proxer server --listen 0.0.0.0:8080 --domain your-server.example.com --token dev-token

    같은 포트에서 공개 요청과 터널 제어 WebSocket을 모두 처리합니다.

  2. 로컬 앱 시작

    클라이언트 머신에서 HTTP 서비스를 하나 띄웁니다. 확인용으로는 Python 서버면 충분합니다.

    python3 -m http.server 3000 --bind 127.0.0.1
  3. 자동 서브도메인 경로 등록

    --subdomain을 생략하면 서버가 임의 서브도메인을 할당합니다.

    proxer http 3000 \
    --server wss://your-server.example.com \
    --token dev-token
  4. 할당된 호스트 호출

    클라이언트가 출력한 subdomain: px-... 값과 public URL을 사용합니다.

    curl https://px-k7m3q9t2ab.your-server.example.com/
  5. 서브도메인 경로 등록

    이름이 있는 경로가 필요하면 --subdomain을 사용합니다.

    proxer http 3000 \
    --server wss://your-server.example.com \
    --subdomain demo \
    --token dev-token
  6. 서브도메인 호스트 호출

    curl https://demo.your-server.example.com/

    루트 호스트가 필요할 때만 --subdomain @를 사용하세요. 이 모드는 서버가 --domain으로 시작된 경우에 가장 명확하게 동작합니다.

아직 DNS가 없다면 한 머신에서 전부 실행하고 Host 헤더만 직접 넣어도 됩니다.

python3 -m http.server 3000 --bind 127.0.0.1
proxer server --listen 127.0.0.1:8080 --domain proxy.localhost --token dev-token
proxer http 3000 --server ws://127.0.0.1:8080 --subdomain demo --token dev-token
curl -H 'Host: demo.proxy.localhost' http://127.0.0.1:8080/

요청이 어떻게 흐르는지는 동작 방식에서, Traefik/Caddy/NGINX 뒤에 둘 때의 주의점은 라우팅과 신뢰 프록시에서 확인하세요.