コンテンツにスキップ
設定オプション

設定オプション

このページは、config-example.toml に出てくる設定キーのクイックリファレンスです。 セットアップ手順は 基本設定高度な使い方 を参照してください。

このページは辞書的に引けることを重視しています。具体的な挙動や構成例は、末尾の関連ガイドを参照してください。

クイックナビゲーション

最小構成例

listen_port = 80
listen_port_tls = 443

[apps.app1]
server_name = "app1.example.com"
tls = { tls_cert_path = "./server.crt", tls_cert_key_path = "./server.key" }

[[apps.app1.reverse_proxy]]
upstream = [
  { location = "app1.local:8080" },
]

グローバル設定

オプション必須デフォルト説明
listen_portいいえなし平文 HTTP を待ち受ける TCP ポートです。listen_portlisten_port_tls の少なくとも一方は必須です。
listen_port_tlsいいえなしHTTPS/TLS を待ち受ける TCP ポートです。TLS を使う場合、ACME を使う場合、HTTP/3 を有効にする場合に必要です。
https_redirection_portいいえTLS 有効時は listen_port_tls と同じ301 リダイレクトや Alt-Svc ヘッダに載せる外向けの HTTPS ポートです。コンテナのポートマッピングやファイアウォール越しで公開ポートが listen_port_tls と異なる場合に使います。
tcp_listen_backlogいいえ内部デフォルトHTTP/1.1 および HTTP/2 リスナーの TCP listen backlog です。
max_concurrent_streamsいいえ内部デフォルト接続ごとの HTTP/2 同時ストリーム数上限です。
max_clientsいいえ内部デフォルトHTTP/1.1、HTTP/2、HTTP/3 を合算した同時クライアント数の上限です。
listen_ipv6いいえfalsetrue にすると IPv4 ではなく IPv6 の listen address に bind します。
default_appいいえなし平文 HTTP で server_name に一致しないリクエストを処理するフォールバックアプリ名です。HTTPS では TLS の server name を選べないため、不明なホストは拒否されます。

アプリケーション定義

すべてのバックエンドアプリケーションは [apps] 以下に定義します。

[apps.<app_name>]

オプション必須デフォルト説明
server_nameはいなしこのアプリが受け持つホスト名です。例: app.example.com
reverse_proxyはいなしこのアプリに対するルーティングルールの一覧です。
tlsいいえなしこのアプリの TLS 設定です。省略すると平文 HTTP のみを提供します。

TLS オプション

これらのオプションは apps.<app_name>.tls に書きます。

オプション必須デフォルト説明
tls_cert_path静的 TLS 利用時は必須なし静的証明書を使う場合の PEM 形式サーバ証明書パスです。
tls_cert_key_path静的 TLS 利用時は必須なしこのアプリの PEM 形式秘密鍵パスです。鍵は PKCS8 形式である必要があります。
https_redirectionいいえlisten_portlisten_port_tls の両方がある場合は trueアプリ単位の HTTP から HTTPS へのリダイレクト設定です。HTTPS のみを提供する場合は指定しないでください。
client_ca_cert_pathいいえなしmTLS のクライアント認証に使う CA 証明書パスです。詳細は クライアント認証 を参照してください。
acmeいいえfalsetrue にすると tls_cert_pathtls_cert_key_path の代わりに ACME で証明書を自動取得・更新します。詳細は ACME (Let’s Encrypt) 連携 を参照してください。

リバースプロキシ設定

各アプリには [[apps.<app_name>.reverse_proxy]] を 1 個以上定義できます。

オプション必須デフォルト説明
pathいいえなし"/api""/static" のようなパス接頭辞です。最長一致で選ばれます。
replace_pathいいえ元のパスを保持upstream へ転送する際に置き換えるパス接頭辞です。
upstreamはいなしバックエンド転送先の一覧です。
load_balanceいいえnoneバックエンド選択方式です。noneround_robinrandomsticky が使えます。
upstream_optionsいいえなしリクエスト転送時の挙動を制御するオプション一覧です。詳細は Upstream Options を参照してください。

Upstream エントリ

upstream = [...] の各要素では次を指定できます。

オプション必須デフォルト説明
locationはいなしバックエンドのホストとポートです。例: "backend.internal:8080""www.example.com"
tlsいいえfalsetrue の場合は upstream 接続に HTTPS を使います。省略時または false の場合は HTTP を使います。

upstream_options の値

各オプションの詳細な挙動は Upstream Options を参照してください。ここでは利用できる値を一覧します。

効果
keep_original_host受信した Host ヘッダを保持します。これがデフォルトの挙動です。
set_upstream_hostHost ヘッダを upstream のホスト名に置き換えます。
upgrade_insecure_requestsUpgrade-Insecure-Requests: 1 がなければ追加します。
force_http11_upstreamupstream 接続を HTTP/1.1 に固定します。
force_http2_upstreamupstream 接続を HTTP/2 に固定します。
forwarded_headerデフォルトの X-Forwarded-* ヘッダに加えて、RFC 7239 の Forwarded ヘッダを生成します。

Experimental 設定

[experimental] テーブルには、任意機能や高度な設定を書きます。

[experimental]

オプション必須デフォルト説明
ignore_sni_consistencyいいえfalsetrue にすると TLS バックエンドに対する SNI 整合性チェックを緩めます。通常は false のままを推奨します。
connection_handling_timeoutいいえ0接続全体の処理タイムアウト秒数です。0 は無制限を意味します。

[experimental.h3]

このテーブルを追加すると HTTP/3 を有効化します。詳細は HTTP/3 を参照してください。

オプション必須デフォルト説明
alt_svc_max_ageいいえ内部デフォルトAlt-Svc の max-age 秒数です。
request_max_body_sizeいいえ内部デフォルトHTTP/3 リクエストボディの最大サイズです。
max_concurrent_connectionsいいえ内部デフォルトQUIC の同時接続数上限です。
max_concurrent_bidistreamいいえ内部デフォルト双方向 QUIC ストリーム数上限です。
max_concurrent_unistreamいいえ内部デフォルト単方向 QUIC ストリーム数上限です。
max_idle_timeoutいいえ内部デフォルトQUIC のアイドルタイムアウト秒数です。0 は無制限を意味します。

[experimental.cache]

このテーブルを追加するとハイブリッドレスポンスキャッシュを有効化します。詳細は キャッシュ を参照してください。

オプション必須デフォルト説明
cache_dirいいえ./cacheキャッシュディレクトリのパスです。カレントワーキングディレクトリからの相対パスです。
max_cache_entryいいえ1000キャッシュエントリの最大数です。
max_cache_each_sizeいいえ655351 レスポンスあたりのキャッシュ可能サイズ上限です。単位は bytes です。
max_cache_each_size_on_memoryいいえ4096メモリ上に保持するキャッシュサイズ上限です。これを超えるキャッシュはファイルとして保存されます。0 にすると常にファイルキャッシュになります。

[experimental.acme]

いずれかのアプリで tls = { acme = true } を使う場合にこのテーブルを追加します。詳細は ACME (Let’s Encrypt) 連携 を参照してください。

オプション必須デフォルト説明
emailはいなしACME アカウント登録に使う連絡先メールアドレスです。
dir_urlいいえLet’s Encrypt production directoryACME directory URL です。
registry_pathいいえ./acme_registry取得した証明書やアカウント情報を保存するディレクトリです。

[experimental.tcp_recv_proxy_protocol]

信頼できる L4 プロキシからの HAProxy PROXY protocol ヘッダを受け付ける場合にこのテーブルを追加します。詳細は PROXY Protocol を参照してください。

オプション必須デフォルト説明
trusted_proxiesはいなし信頼するプロキシの CIDR 範囲一覧です。空は不可です。例: ["127.0.0.1/32", "::1/128"]
timeoutいいえ50 msPROXY ヘッダ受信のタイムアウトです。単位はミリ秒です。0 を指定すると内部的に 5s のフォールバックタイムアウトになります。

関連ガイド