メインコンテンツまでスキップ

リバースプロキシ

リバースプロキシは Semaphore の前段に置かれて TLS を終端します。これにより、ブラウザーと ランナーは HTTPS でプロキシと通信し、Semaphore 自体はローカルインターフェース上で平文の HTTP を待ち受けます。Semaphore には組み込みの TLS も あるため、プロキシは必須ではありません。すでにプロキシを運用している場合、証明書を別の 場所で管理する必要がある場合、Semaphore をサブパスで公開したい場合、または 1 台のホストで 複数のサービスを提供する場合にプロキシを使ってください。

どの構成でも必ず対応すべき事項

どのプロキシを選ぶ場合でも、次の 3 点が正しくないと、インターフェースの一部が 原因を特定しにくい形で動作しなくなります。

  • /api/ws での WebSocket アップグレード。 タスクログは WebSocket でストリーミング されます。アップグレードのヘッダーがないと、タスクの実行中もログウィンドウは空のままです。
  • ping の間隔より長い読み取りタイムアウト。 Semaphore はアイドル状態の WebSocket に 対して約 2 分ごとに ping を送ります。アイドル接続を 60 秒で閉じるプロキシでは、ログ表示が 繰り返し切断されます。
  • 公開 URL に設定された web_host Semaphore はこの値からリダイレクト URL を組み立て、 クッキーの Secure フラグを設定し、リクエストのオリジンを検証します。ブラウザーが使った URL と一致しないとサインインに失敗します。 設定を参照してください。

このセクションの内容

ページ内容
nginxTLS、WebSocket のアップグレード、転送ヘッダーを含む server ブロックです。
Apachemod_proxymod_proxy_wstunnel を使う仮想ホストです。
Caddy証明書を自動取得する最小限の Caddyfile です。

ここから始める

すでに運用しているプロキシを選んでください。特に希望がなく、既存のプロキシもない場合は、 Caddy が最短の道です。証明書の取得と更新を自動で 行ってくれます。

TLS を超える強化については、ネットワークのセキュリティを 参照してください。