nginx-proxyコンテナで413 Request Entity Too Large エラーが出た時の設定変更方法

Docker

はじめに

nginx-proxyを使用している場合、大きなファイルをアップロードしようとすると「413 Request Entity Too Large」というエラーが発生することがあります。このエラーは、Nginxのデフォルト設定によりアップロードサイズの制限がかかっているためです。この記事では、このエラーを解決するための設定変更方法を解説します。

エラーの原因

「413 Request Entity Too Large」エラーは、Nginxがリクエストボディのサイズを制限しているために発生します。デフォルトでは、このサイズは1MBに設定されています。これを増やすことで、大きなファイルのアップロードを許可することができます。

設定変更の手順

nginx-proxyの設定ファイルを編集

まず、nginx-proxyの設定ファイルを編集して、リクエストボディサイズの制限を変更します。

設定ファイルの場所を確認

nginx-proxyの設定ファイルは、通常、コンテナ内の/etc/nginx/conf.dディレクトリに配置されています。これをホストマシンにマウントして編集します。

設定ファイルの編集

以下のコマンドを実行して、設定ファイルを編集します。

ShellScript
cd /usr/local/src/nginx-proxy
vi docker-compose.yml

次に、以下の内容をnginx-proxyサービスのvolumesセクションに追加します。

YAML
version: '3'

services:
  nginx-proxy:
    image: nginxproxy/nginx-proxy
    container_name: nginx-proxy
    ports:
      - 80:80
      - 443:443
    volumes:
      - conf:/etc/nginx/conf.d
      - certs:/etc/nginx/certs:ro
      - vhost:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ./conf/uploadsize.conf:/etc/nginx/conf.d/uploadsize.conf
    environment:
      DEFAULT_HOST: ★ここにドメイン名を入れる
      HTTPS_METHOD: noredirect
    restart: always

カスタム設定ファイルの作成

uploadsize.confというカスタム設定ファイルを作成し、以下の内容を追加します。

ShellScript
mkdir -p /usr/local/src/nginx-proxy/conf
cd /usr/local/src/nginx-proxy/conf
vi uploadsize.conf

以下の設定をuploadsize.confに追加します。

uploadsize.conf
client_max_body_size 100M;

この設定により、アップロードサイズの制限が100MBに変更されます。

必要に応じて、この値を適宜変更してください。

コンテナの再起動

設定を反映させるために、nginx-proxyコンテナを再起動します。

ShellScript
cd /usr/local/src/nginx-proxy
docker-compose down
docker-compose up -d

これで、nginx-proxyの設定が更新され、413エラーが解消されるはずです。

まとめ

「413 Request Entity Too Large」エラーは、Nginxのデフォルトのアップロードサイズ制限によって発生します。この制限を変更することで、大きなファイルをアップロードできるようになります。nginx-proxyを使用している場合は、カスタム設定ファイルを作成し、適切な設定を追加することで、この問題を解決できます。

タイトルとURLをコピーしました