OpenClaw v2026.5.x を各 PoP で揃えるとき、nginx streamSNI だけで TLS を分岐し gateway は 127.0.0.1 に固定します。status/doctor は五分窓で一行へ合算します。

Traefik 篇は L7、frp 篇は visitor 軸です。本稿は証明書を nginx に寄せ OpenClaw はループバックのままにします。SSH トンネル篇と併読ください。

痛点は三つです。L7 の証明書とルール差分が監査説明を肥大化させること。 frp visitor が別手順になり二重化すること。 status と doctor が別通知で判断が遅れることです。

入口方式 強み 多地域での注意
Traefik 等 L7 HTTP ルートが豊富 証明書と動的設定の負債が増えやすい
frp STCP visitor で貫通が速い secret と台帳が監査の別章になる
nginx stream ClientHello のみ解読し透過 map と証明書 SAN を一致させる

トポロジー

各 PoP の 443/tcp を stream が受け、ssl_preread の SNI で 127.0.0.1 の gateway/doctor へ振り分けます。外向き TLS は nginx が終端し、ループバックは短命トークンとファイル権限で守ります。vpshalo では東京・ソウル・香港・シンガポール・米西海岸など複数リージョンへ同じ設定片を複製し、差分は map 行と証明書 SAN だけに留める運用が向きます。

stream 設定断片

map の戻りを proxy_pass へ渡し、未知 SNI は空で落とします。

map $ssl_preread_server_name $oc_backend {
    default "";
    claw-gw.internal.example   127.0.0.1:18787;
    claw-diag.internal.example 127.0.0.1:18788;
}
server {
    listen 443 reuseport;
    ssl_preread on;
    proxy_pass $oc_backend;
    proxy_connect_timeout 5s;
}

証明書とトークン

公開証明書は nginx の ssl_certificate で管理し ACME オーナーを固定します。gateway は必ずループバック bind、トークンは秘密ストアか限定 ACL ファイルに置き Git へ戻しません。証明書更新とトークンローテーションはチケットを分けます。

境界:stream は HTTP を読みません。SNI と SAN を一致させ、openssl s_client -servername で各 PoP から検証します。

ヘルスと status/doctor の合算

sidecar が /status/doctor を叩き JSON に regionlaneerror_class を付けます。五分窓で jq 等により一行要約へ潰し PagerDuty へ送れば地域判断が一度で済みます。失敗時は gateway と診断のどちらが先に赤くなったかを同一行に残し、ロールバックの優先順位を会議室で争わないようにします。

最小再現の五歩

v2026.5.x へ揃え gateway をループバックのみにする。map に内部名を列挙し未知 SNI を落とす。nginx で TLS 終端と ACME 権限分離。sidecar で status/doctor を同スキーマ化。五分要約をダッシュへ載せロールバック手順へリンクする。

よくある質問

Q Traefik を捨てる必要は。A 不要です。L7 は残し OpenClaw 入口だけ stream へ寄せるハイブリッドで足ります。Q doctor を止めると。A 止めず合算先を一つにします。

引用三行:SNI と SAN を表で管理。gateway は公開禁止。status/doctor は五分一行。

免責:ポート名は版で異なります。ステージング PoP で先に検証してください。

PoP 追加時は map と合算テーブルへ region を足します。

vpshalo

ヘルプ・トップ・関連 OpenClaw

ヘルプトップブログ一覧はログイン不要です。

ヘルプセンターへ トップへ 関連:frp STCP 篇 関連:Traefik/JumpHost 篇