ルーティングと信頼済みプロキシ
ルートおよびサブドメインホストをルーティングし、reverse proxy背後で運用します。
Proxerは公開リクエストをホスト名でルーティングします。すべての経路が明示的なので、別々のクライアントが混ざることはありません。
ルート経路とサブドメイン経路
Section titled “ルート経路とサブドメイン経路”公開ドメインを指定してサーバーを起動します。
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を返します。
ローカルでのテスト
Section titled “ローカルでのテスト”DNSなしでテストするときは、ホストを明示します。
curl -H 'Host: demo.proxy.example.com' http://127.0.0.1:8080/localhostやIPアドレス宛てのリクエストは、接続済みクライアントへ自動ルーティングされません。
Reverse Proxyの背後で実行する
Section titled “Reverse Proxyの背後で実行する”Traefik、Caddy、NGINXなどのreverse proxyをProxerの前に置く場合は、元のHostヘッダーを保持してください。Traefikでは通常、passHostHeaderを有効にしたデフォルト動作のままで問題ありません。
次に、どのプロキシアドレスからのforwardedヘッダーを信頼するかをProxerへ伝えます。
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ヘッダーは、ルーティング判断に使われません。
予約済み内部パス
Section titled “予約済み内部パス”すべてのProxer内部エンドポイントは/__proxer__/配下にあります。
/__proxer__/control/__proxer__/health/live/__proxer__/health/readyこれらのパスをローカルアプリへルーティングしないでください。公開サーバー自身が処理します。