Skip to content

413 Request Entity Too Large - nginx error

Describe the bug

413 Request Entity Too Large - nginx error when uploading new episodes.

Steps to reproduce

  1. Install Castopod 1.3.5 using Cloudpanel V2 instructions https://blog.castopod.org/install-castopod-on-cloud-panel-v2/
  2. Change PHP configuration settings to increase max_size settings to 512MB
  3. Modify nginx vhost client_max_body_size setting to 500M or disable entire with value of 0
  4. Restart nginx service and/or restart server instance.
  5. Select audio file, enter title and description, then attempt to upload podcast episode of 115MB.
  6. Observe 413 error

Expected behavior

Completed upload of new podcast episode

Actual behavior

Upload fails with 413 Request Entity Too Large - nginx error

Relevant logs and/or screenshots

No nginx or php error is logs for some reason.

Context

  • Castopod: 1.3.5
  • OS: Ubuntu 22.04.2 LTS
  • Browser: Brave
  • Web server: nginx
  • nginx config
server {
  listen 80;
  listen [::]:80;
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  {{ssl_certificate_key}}
  {{ssl_certificate}}
  server_name cml.dvllc.co;
  client_max_body_size 0;
  client_body_buffer_size 64k;
  {{root}}

  {{nginx_access_log}}
  {{nginx_error_log}}

  if ($scheme != "https") {
    rewrite ^ https://$host$uri permanent;
  }

  location ~ /.well-known {
    try_files $uri $uri/ /index.php?$args;
    auth_basic off;
    allow all;
  }

  {{settings}}

  location / {
    {{varnish_proxy_pass}}
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_hide_header X-Varnish;
    proxy_redirect off;
    proxy_max_temp_file_size 0;
    proxy_connect_timeout      720;
    proxy_send_timeout         720;
    proxy_read_timeout         720;
    proxy_buffer_size          128k;
    proxy_buffers              4 256k;
    proxy_busy_buffers_size    256k;
    proxy_temp_file_write_size 256k;
  }

  location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ {
    add_header Access-Control-Allow-Origin "*";
    expires max;
    access_log off;
  }

  if (-f $request_filename) {
    break;
  }
}

server {
  listen 8080;
  listen [::]:8080;
  server_name cml.dvllc.co;
  {{root}}

  try_files $uri $uri/ /index.php?$args;
  index index.php index.html;

  location ~ \.php$ {
    include fastcgi_params;
    fastcgi_intercept_errors on;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    try_files $uri =404;
    fastcgi_read_timeout 3600;
    fastcgi_send_timeout 3600;
    fastcgi_param HTTPS "on";
    fastcgi_pass 127.0.0.1:{{php_fpm_port}};
    fastcgi_param PHP_VALUE "{{php_settings}}";
  }

  if (-f $request_filename) {
    break;
  }
}

Possible fixes

[If you can, link to the line of code that might be responsible for the problem]