コンテンツにスキップ
ProxerProxerv0.13.0

はじめに

Proxerをインストールし、ローカルHTTPサービスを公開します。

このページでは、よくある構成を使います。公開サーバーがインターネットからのトラフィックを受け、実際のアプリはノートPCやプライベートなマシンで動きます。プライベート側のマシンは、公開サーバーへ外向きに接続できれば十分です。

  • 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の背後に置くときの注意点はルーティングと信頼済みプロキシを見てください。