HAProxy設定生成
高性能負荷分散&リバースプロキシ基盤

HAProxy ロードバランサー設定ジェネレーター

HAProxyロードバランサー向けの本番環境対応設定ファイル生成および構文バリデーションツール。

100% クライアント側プライバシー
サーバー送信ゼロ
プリセット:
HAProxy アーキテクチャ設定ビルダー
グローバル&パフォーマンス設定global
プロキシデフォルト&タイムアウト設定defaults
フロントエンド&SSL/TLS終端frontend
スティックテーブルDDoS緩和保護
アクセスコントロールリスト (ACL)
→
バックエンドサーバープール (5 ノード)
be_app_clusterhttp
:
:
:
be_static_cachehttp
:
:
HAProxy Web統計画面&Prometheusエクスポーター
#---------------------------------------------------------------------
# HAProxy 3.0 Production Configuration
# Generated via ToolsAA 100% Client-Side Engine
#---------------------------------------------------------------------
global
    log 127.0.0.1:514 local0 notice
    chroot /var/lib/haproxy
    user haproxy
    group haproxy
    daemon
    maxconn 50000
    nbthread 4
    stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
    stats timeout 30s

    # Hardened Modern SSL/TLS Ciphers (OWASP & Mozilla Modern Standard)
    ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256
    ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
    ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets

#---------------------------------------------------------------------
# Common Defaults for all Frontend & Backend Proxies
#---------------------------------------------------------------------
defaults
    log global
    mode http
    option httplog
    option dontlognull
    option redispatch
    retries 3
    timeout connect 5s
    timeout client  50s
    timeout server  50s
    timeout http-keep-alive 15s
    timeout http-request    10s
    timeout queue   1m
    maxconn 30000

#---------------------------------------------------------------------
# Frontend: fe_web_https
#---------------------------------------------------------------------
frontend fe_web_https
    bind *:80
    bind *:443 ssl crt /etc/haproxy/certs/site.pem alpn h2,http/1.1
    http-request redirect scheme https unless { ssl_fc }
    http-response set-header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
    option forwardfor
    http-request set-header X-Forwarded-Proto https if { ssl_fc }
    http-request set-header X-Forwarded-Proto http unless { ssl_fc }
    http-request set-header X-Forwarded-Port %[dst_port]
    compression algo gzip deflate
    compression type text/html text/plain text/css application/javascript application/json

    # Stick-table Rate Limiting & Anti-DDoS
    stick-table type ip size 100k expire 10s store http_req_rate(10s)
    http-request track-sc0 src
    http-request deny deny_status 429 if { sc_http_req_rate(0) gt 120 }

    # ACL Conditions
    acl is_static_assets path_beg /static /assets /favicon.ico

    # ACL Backend Routing Rules
    use_backend be_static_cache if is_static_assets
    default_backend be_app_cluster

#---------------------------------------------------------------------
# Backend: be_app_cluster
#---------------------------------------------------------------------
backend be_app_cluster
    mode http
    balance roundrobin
    cookie SERVERID insert indirect nocache
    option httpchk GET /healthz
    http-check expect status 200,204
    server web01 10.0.1.11:3000 weight 10 check inter 2000 rise 2 fall 3 cookie web01
    server web02 10.0.1.12:3000 weight 10 check inter 2000 rise 2 fall 3 cookie web02
    server web03 10.0.1.13:3000 weight 10 check inter 2000 rise 2 fall 3 cookie web03

#---------------------------------------------------------------------
# Backend: be_static_cache
#---------------------------------------------------------------------
backend be_static_cache
    mode http
    balance roundrobin
    option httpchk GET /healthz
    http-check expect status 200,204
    server nginx-cdn01 10.0.1.51:80 weight 10 check inter 2000 rise 2 fall 3
    server nginx-cdn02 10.0.1.52:80 weight 10 check inter 2000 rise 2 fall 3

#---------------------------------------------------------------------
# HAProxy Real-Time Statistics & Prometheus Metrics Hub
#---------------------------------------------------------------------
listen stats
    bind *:8404
    mode http
    stats enable
    stats uri /stats
    stats refresh 5s
    stats auth admin:SuperClusterSecret2026
    stats show-node
    stats show-legends

    # Prometheus Exporter Endpoint
    http-request use-service prometheus-exporter if { path /metrics }
フロントエンドとポート
fe_web_https:80 & :443 (TLS)
モード: HTTP • HTTP/2 ALPN 有効
バックエンドクラスター
2 プール (5 アップストリームノード)
負荷分散方式: roundrobin • アクティブ死活監視
セキュリティとDDoS防御
スティックテーブル (100k IP件数)
TLS 1.3暗号&HSTS有効

100% クライアントサイド保護

サーバーへのデータ送信は一切行いません。バックエンドIP、SSL設定、ACLルールはブラウザ内でのみ安全に処理されます。

実戦向けHAProxy 2.x/3.xディレクティブ

TLS 1.3暗号スイート、ALPNネゴシエーション、ヘルスチェック、スティックテーブルレート制限を含む堅牢な構文を生成します。

即時デプロイ対応

haproxy.cfgだけでなく、Docker Compose構成、Systemdサービス定義、無停止リロードコマンドも即座に出力します。

技術リファレンス&アーキテクチャガイド

HAProxy ロードバランサー設定ジェネレーター — リファレンスガイド

HAProxyロードバランサー向けの本番環境対応設定ファイル生成および構文バリデーションツール。

主要パラメータ&設定項目

version'3.0' | '2.8' | '2.4'

対象のHAProxyリリース系。マスターワーカー構文、スレッド設定、最新暗号スイートの互換性を決定します。

初期値: '2.8'
mode'http' | 'tcp'

プロキシの動作レイヤー。L7 HTTPヘッダー解析とL4 TCPストリーム透過ルーティングのいずれかを指定します。

初期値: 'http'
algorithm'roundrobin' | 'leastconn' | 'source' | 'uri' | 'first' | 'random'

バックエンドの負荷分散ポリシー。稼働中のアップストリームノードへのトラフィック配分方法を決定します。

初期値: 'roundrobin'
enableRateLimitboolean

送信元IPアドレス(src)を追跡するメモリスティックテーブルを展開し、閾値超過時にHTTP 429を返します。

初期値: false
enableAlpnH2boolean

TLS bindディレクティブに 'alpn h2,http/1.1' トークンを追加し、HTTP/2多重化を有効化します。

初期値: true

プロの活用テクニック&推奨設定

スティックテーブル保持期間の調整

DDoS攻撃時のRAM消費を抑えるため、expireには長い期間ではなく10s〜30sを指定し、http_req_rate(10s)と組み合わせて運用してください。

ヘルスチェック間隔の最適化

一時的なネットワーク揺らぎによるフェイルオーバーの連鎖を防ぐため、'inter 3s fastinter 1s downinter 5s rise 2 fall 3' を指定してください。

CLIソケットの無停止リロード

パケットロスなしでマスターワーカーのゼロダウンタイムリロードを行うには、'stats socket ... expose-fd listeners' を有効化してください。

よくあるトラブルと解決策

haproxy -c 検証時に 'SSL certificate not found' エラーが出る

証明書と秘密鍵が結合された単一のPEMファイルを指定するか、検証テスト前に /etc/ssl/certs/haproxy.pem に自己署名ダミー証明書を配置してください。

バックエンドのヘルスチェックが 'L7STS: Layer7 invalid status 404' になる

バックエンド側で仮想ホスト照合が必要な場合は、'option httpchk' の定義に 'http-check send hdr Host yourdomain.com' を追加してください。

スティックテーブルによるレート制限がCDN経由の全クライアントを遮断する

追跡キーを 'src' から 'http-request track-sc0 hdr(CF-Connecting-IP)' や 'hdr(X-Forwarded-For)' に変更し、エッジノードではなく実クライアントIPを追跡してください。

よくある質問 (FAQ)

HAProxyはsystemd環境でどのように無停止リロードを実現しますか?▼

マスターワーカーモード(-W)とソケットペア転送(expose-fd listeners)を使用します。新規プロセスが既存ソケットを引き継いだ後、旧ワーカーがドレイン完了後に終了します。

生成される設定パラメータが外部サーバーに送信されることはありますか?▼

すべての設定合成とフォーマット処理はブラウザのローカルメモリ上で完結し、インフラ構成情報や認証情報が外部サーバーへ送信されることはありません。

高負荷時におけるスティックテーブルのメモリ消費量はどれくらいですか?▼

1クライアントIPあたり約64バイト消費します。10万エントリ(size 100k)のテーブルでは、HAProxyプロセス内で約6.4MBのRAMを使用します。

HTTP/2 ALPN利用時にPEM結合証明書が必要な理由は何ですか?▼

HAProxyおよびOpenSSLはbind行でサーバー証明書・中間証明書・秘密鍵が1つのPEMファイルにまとまっていることを前提とし、TLSハンドシェイクとALPNネゴシエーションを高速処理するためです。

関連するおすすめ開発ツール

すべてのツール →
Kubernetes Helm Chart (Chart.yaml & values.yaml) 生成ツール開発ツール

標準的なKubernetes Helm v3のChart.yaml、values.yaml、およびService、Ingress、リソース制限を備えたデプロイメントテンプレートを生成します。

ツールを開く→
マルチステージ Dockerfile ジェネレーター (Node, Go, Python, Rust)開発ツール

Node.js、Golang、Python、Rust、Java向けの高セキュアで軽量なマルチステージ Dockerfile を生成。非rootユーザー設計とBuildKitキャッシュ最適化を完全網羅。

ツールを開く→
SQL DDL から Kysely TypeScript 型定義生成ツール開発ツール

PostgreSQL、MySQL、SQLiteのSQL DDLスキーマを解析し、完全な型安全性を備えたKysely向けTypeScript型定義とインターフェースを生成するための開発者向けリファレンス。

ツールを開く→
SQL DDL から MikroORM TypeScript エンティティ変換ジェネレーター開発ツール

SQL CREATE TABLE 定義を解析し、@Entity、@PrimaryKey、@Property、@Index、およびリレーション装飾子を備えた MikroORM エンティティクラスに変換します。

ツールを開く→
JSONからMongooseスキーマ&TypeScriptモデル生成ツール開発ツール

JSONペイロードからMongoDB Mongooseスキーマ、TypeScript型定義(Document・DTO)、ネストされたサブドキュメント、タイムスタンプを推論・自動生成します。

ツールを開く→
JSON to Yup バリデーションスキーマ生成ツール開発ツール

JSONサンプルを型安全なYupオブジェクト検証スキーマに変換し、yup.string()、yup.number()、yup.array()、必須ルールを自動生成します。

ツールを開く→