docs: nginx.customConfig の取り違えと client_max_body_size 重複を防ぐ記述に修正
Helm Chart Release / release-chart (push) Successful in 6s
Helm Chart Release / release-chart (push) Successful in 6s
あるプロジェクトから「serverSnippet が効かない」「snippet は古いキー」との 指摘があり調査した結果、指摘の前提は誤りだった。 - 実際に使われる templates/configmap.yaml が読むのは snippet で、values.yaml と README も snippet で一致している。 - serverSnippet / httpSnippet は、.Values.nginx.enabled が存在せず一度も出力 されない configmap-nginx.yaml だけが読むキーで、values・README に載ったことが なく、指定しても黙って無視される。 - README 例6・例9 が snippet に client_max_body_size を書く手順になっており、 v8.5.9-b 以降は uploadMaxSize の自動出力と重複して nginx が起動しない (2026-09-29 の障害の発生源)。例6 は location ~ \.php$ も重複定義していた。 挙動の変更はなくドキュメント・コメントのみ。 - values.yaml / README: 読まれるキーは snippet のみ、挿入先は server ブロック内、 client_max_body_size は書かず uploadMaxSize を使うことを明記 - README 例6・例9 を uploadMaxSize 指定に修正 - configmap-nginx.yaml: 未使用であることを示す注記を追加 手動リリース 8.5.11-a。
This commit is contained in:
@@ -329,13 +329,18 @@ smtp:
|
||||
| パラメータ | 説明 | デフォルト |
|
||||
|-----------|------|-----------|
|
||||
| `nginx.customConfig.enabled` | カスタム設定有効化 | `false` |
|
||||
| `nginx.customConfig.snippet` | 設定スニペット | `""` |
|
||||
| `nginx.customConfig.snippet` | `server { }` ブロック末尾へそのまま挿入するnginx設定(下記注意参照) | `""` |
|
||||
| `nginx.forwardRealIP.enabled` | リアルIP取得有効化 | `false` |
|
||||
| `nginx.forwardRealIP.header` | リアルIP取得ヘッダー | `"X-Forwarded-For"` |
|
||||
| `nginx.forwardRealIP.recursive` | 再帰的IP検索 | `true` |
|
||||
| `nginx.forwardRealIP.trustedProxies` | 信頼するプロキシネットワーク | `["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]` |
|
||||
| `nginx.forwardRealIP.additionalTrustedProxies` | 追加の信頼プロキシ | `[]` |
|
||||
|
||||
> **📌 `nginx.customConfig.snippet` の注意点**
|
||||
> - 読まれるキーは `snippet` のみです。`serverSnippet` / `httpSnippet` というキーは存在せず、指定しても**無視されます**(過去に作られた未使用テンプレート `configmap-nginx.yaml` 専用のキーで、一度も出力されたことがありません)。
|
||||
> - 挿入先は `server { }` ブロック内です。`limit_req_zone` など `http` レベル専用のディレクティブは書けません。
|
||||
> - チャートが自動で出力する設定を重複して書くと、nginxが起動しなくなります。特に **`client_max_body_size` は書かないでください**(`directive is duplicate` で起動失敗)。アップロード上限は `uploadMaxSize` で設定します。
|
||||
|
||||
> **📌 sitemap.xml のContent-Type**
|
||||
> `/sitemap.xml`(静的ファイルとして配置した場合)は、常に `Content-Type: application/xml; charset=utf-8` で配信されます。標準の `mime.types` では `.xml` が `text/xml` 扱いでcharsetが付かず、ブラウザやGoogle Search Consoleなどのツールが正しく解釈できない場合があるための組み込み対応です(設定不要、常時有効)。
|
||||
> なお、PHPで動的に生成する場合はこの設定は適用されません(PHP側で `header('Content-Type: application/xml; charset=utf-8');` を指定してください)。
|
||||
@@ -521,22 +526,21 @@ $driver->quit();
|
||||
|
||||
```yaml
|
||||
# values.yaml
|
||||
|
||||
# アップロード上限は snippet ではなく uploadMaxSize で設定する
|
||||
# (nginx の client_max_body_size を snippet に書くと、チャートの自動出力と重複して起動失敗する)
|
||||
uploadMaxSize: "100m"
|
||||
|
||||
nginx:
|
||||
customConfig:
|
||||
enabled: true
|
||||
# server { } ブロックの末尾にそのまま挿入される。
|
||||
# PHPの location ~ \.php$ はチャート本体が定義済みのため、ここでは再定義しない
|
||||
# (タイムアウト等は server レベルで指定すれば PHP の location にも継承される)
|
||||
snippet: |
|
||||
client_max_body_size 100M;
|
||||
|
||||
location ~ \.php$ {
|
||||
fastcgi_pass 127.0.0.1:9000;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
include fastcgi_params;
|
||||
|
||||
fastcgi_read_timeout 300;
|
||||
fastcgi_send_timeout 300;
|
||||
}
|
||||
|
||||
fastcgi_read_timeout 300;
|
||||
fastcgi_send_timeout 300;
|
||||
|
||||
location /admin {
|
||||
auth_basic "Administrator Area";
|
||||
auth_basic_user_file /etc/nginx/.htpasswd;
|
||||
@@ -546,6 +550,8 @@ persistence:
|
||||
enabled: true
|
||||
```
|
||||
|
||||
> `snippet` で指定する際の注意点は、[Nginx設定](#nginx設定)の「`nginx.customConfig.snippet` の注意点」を参照してください。
|
||||
|
||||
### 例7: ベアメタル環境でのリアルIP取得
|
||||
|
||||
ベアメタルKubernetesやLoadBalancer経由でのアクセスで、PHPからクライアントの実IPアドレスを取得する設定です。
|
||||
@@ -706,11 +712,13 @@ ingress:
|
||||
hosts:
|
||||
- api.production.com
|
||||
|
||||
# アップロード上限は snippet ではなく uploadMaxSize で設定する
|
||||
uploadMaxSize: "50m"
|
||||
|
||||
nginx:
|
||||
customConfig:
|
||||
enabled: true
|
||||
snippet: |
|
||||
client_max_body_size 50M;
|
||||
fastcgi_read_timeout 300;
|
||||
|
||||
# Opcache設定
|
||||
|
||||
Reference in New Issue
Block a user