リバースプロキシ転送先でのファイルアップロードエラー対処

Docker HUBにあるjwilder/nginx-proxyで構築したリバースプロキシでは2MBを超えるファイルはデフォルトではアップロードできないようです。しかしそのような制限があるとコンテンツ構築に支障があるのでアップロードサイズ上限を変更しました。その手順を公開します。

jwilder/nginx-proxyでのリバースプロキシ構築はこちらを参照ください。

1.現象

リバースプロキシの転送先ホストで運用しているWordpresでテーマファイルのアップロードに失敗しました。サイズは12MB程度。php.iniの設定は15MBとしているのでクリアしています。ホストのnginx設定ファイルでも「client_max_body_size 100M;」に設定しており問題はないはずです。

Nginxでは以下のエラーが発生していました。

「413 Request Entity Too Large」

2.原因

調査したところやはり、「client_max_body_size」の問題らしい。リバースプロキシ側でデフォルトのままなのではと推測し設定ファイルを確認。

やはりdefault.confに「client_max_body_size」の設定はありませんでした。

3.対処

jwilder/nginx-proxyのnginx設定ファイルは「/etc/conf.d/default.conf」です。この設定ファイルはコンテナが占有し随時設定を書き換えるので手を加えることはできません。

そこで、新たに設定ファイルを作成しそこに「client_max_body_size 100M;」を追加。
volumes指定でコンテナにマウントすることにしました。

(1)YMLファイル

変更したリバースプロキシ用YMLファイルは以下の通りです。12行目でserver.confファイルのマウントを追加しています。

(2)server.conf

追加したのは以下の1行です。

(3)再起動

再起動をして上記設定ファイルの修正をjwilder/nginx-proxyに反映させます。rvproxyにcdして以下のコマンドを実行します。

これで転送先ホストのwordpressで12MBのテーマファイルもアップロードできるようになりました。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする