3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pleasanter + nginxで1MB以上のファイルがアップロードできなかった原因

Last updated at Posted at 2025-07-19

現象

Pleasanterでちょっとした申請システムを作っていたのですが、1MB以上の写真を添付しようとすると、添付できずに途中で止まってしまう現象が発生しました。その時、ブラウザ上では特にエラーメッセージの表示はされませんでした。

原因

リバースプロキシとしてnginxを使用していたのですが、クライアントからの最大リクエストサイズがデフォルトで1MBとなっていることが原因でした。

解決方法

nginxの最大リクエストサイズを、より大きな値に設定することで解決しました。
nginxの設定ファイル(conf.d/配下の.confファイル)に上限を100MBとする行を書き足しました。

nginxのconf
server {
    listen 443 ssl http2;
    #---その他の設定---
    #↓の一行を書き足し
    client_max_body_size 100m;

    location / {
        #---その他の設定---
    }
}
</pre>

とりあえず100MBで設定をしておき、実際の容量制限はPleasanter上で設定することにしました。

その他覚書

今回、PleasanterはDocker上に構築していたのですが、同じサーバー上に複数のWebサービスを立ち上げるため、nginxをリバースプロキシとして運用していました。他のサービスは、ファイルをアップロードすることがそもそもない運用でしたので、まったく気付きませんでした。
Pleasanterは、添付ファイルの容量などもGUIで設定できるので、最初はそちらが原因かと見当はずれなところから調査を始めてしまいました。nginx、こんなデフォルト設定があるんですね……。

やるべきだったこと

nginxのログを調べる

軽く調べたら「ほぼこれだろうな」という原因に行き当たってしまったので、ログを調べずに設定をあててしまいました。ログの確認をして裏付けをとってから作業したほうがよかったですね。

最大リクエストサイズの設定は共通設定としておく

今回、nginxの下に複数のwebサービスを起動しています。Pleasanter以外のサービスは、ファイルのアップロードをするという運用はありませんが、今後のことを考えて共通設定の.confを作り、そちらに設定を移行しようと思います。

nginxの再起動

サービスを内部でしか使用していなかったので、次のコマンドでコンテナを再起動し、設定を当てなおしました。

コンテナ再起動
docker compose nginx restart

コンテナの再起動自体は、1秒もかからず完了はします。
とはいえ、設定をreloadすればダウンタイムなしで設定を当てられるので、よりベストな手段をとっていくこととし、今後は次のコマンドを使用していこうと思います。

再読み込み
docker compose exec nginx nginx -s reload
3
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?