Skip to content
このページは AI の支援により作成・翻訳されました。誤りがあれば、改善にご協力ください。 GitHub で編集

リバースプロキシ設定

PRX-WAFはリバースプロキシとして機能し、WAF検出パイプラインを通過した後にクライアントリクエストを上流バックエンドサーバーに転送します。このページでは、ホストルーティング、負荷分散、プロキシ設定について説明します。

ホスト設定

保護する各ドメインには、受信リクエストを上流バックエンドにマッピングするホストエントリが必要です。ホストは3つの方法で設定できます:

TOMLコンフィグファイル経由

toml
[[hosts]]
host        = "example.com"
port        = 80
remote_host = "10.0.0.1"
remote_port = 8080
ssl         = false
guard_status = true

管理UI経由

  1. サイドバーのホストに移動
  2. ホストを追加をクリック
  3. ホストの詳細を入力
  4. 保存をクリック

REST API経由

bash
curl -X POST http://localhost:9527/api/hosts \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "host": "example.com",
    "port": 80,
    "remote_host": "10.0.0.1",
    "remote_port": 8080,
    "ssl": false,
    "guard_status": true
  }'

ホストフィールド

フィールドタイプ必須説明
hoststringはいマッチするドメイン名(例:example.com
portintegerはいリッスンするポート(通常80または443
remote_hoststringはい上流バックエンドIPまたはホスト名
remote_portintegerはい上流バックエンドポート
sslbooleanいいえ上流がHTTPSを使用するか(デフォルト:false
guard_statusbooleanいいえこのホストのWAF保護を有効化(デフォルト:true

負荷分散

PRX-WAFは重み付きラウンドロビン負荷分散を使用して上流バックエンド全体にトラフィックを分散します。ホストに複数のバックエンドが設定されている場合、トラフィックは重みに比例して分配されます。

INFO

ホストごとの複数の上流バックエンドは管理UIまたはAPIで設定できます。TOMLコンフィグファイルは単一バックエンドのホストエントリをサポートします。

リクエストヘッダー

PRX-WAFは転送リクエストに標準プロキシヘッダーを自動的に追加します:

ヘッダー
X-Real-IPクライアントのオリジナルIPアドレス
X-Forwarded-ForクライアントIP(既存のチェーンに追加)
X-Forwarded-Protohttpまたはhttps
X-Forwarded-HostオリジナルのHostヘッダー値

リクエストボディサイズ制限

最大リクエストボディサイズはセキュリティ設定で制御されます:

toml
[security]
max_request_body_bytes = 10485760  # 10 MB

この制限を超えるリクエストはWAFパイプラインに到達する前に413 Payload Too Largeレスポンスで拒否されます。

ホストの管理

すべてのホストを一覧表示

bash
curl -H "Authorization: Bearer $TOKEN" http://localhost:9527/api/hosts

ホストを更新

bash
curl -X PUT http://localhost:9527/api/hosts/1 \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"guard_status": false}'

ホストを削除

bash
curl -X DELETE http://localhost:9527/api/hosts/1 \
  -H "Authorization: Bearer $TOKEN"

IPベースのルール

PRX-WAFは検出パイプラインのフェーズ1〜4で評価されるIPベースのアローおよびブロックルールをサポートします:

bash
# Add an IP allowlist rule
curl -X POST http://localhost:9527/api/rules/ip \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ip": "10.0.0.0/8", "action": "allow"}'

# Add an IP blocklist rule
curl -X POST http://localhost:9527/api/rules/ip \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ip": "203.0.113.50", "action": "block"}'

次のステップ

Released under the Apache-2.0 License.