3

I originally posted this on Stack Overflow, then remembered that SO isn't for server-based questions.

Hey guys,

When I try to upload a file to my site, I'm getting the Nginx "413 Request Entity Too Large" error, however in my nginx.conf file I've already explicitly stated the max size to be about 250MB at the moment, and changed the max file size in php.ini as well (and yes, I restarted the processes). The error log gives me this:

2010/12/06 04:15:06 [error] 20124#0: *11975 client intended to send too large body: 1144149 bytes, client: 60.228.229.238, server: www.x.com, request: "POST /upload HTTP/1.1", host: "x.com", referrer: "http://x.com/"

As far as I know, 1144149 bytes isn't 250MB... Is there something I'm missing here?

Here's the base Nginx config:

user nginx; worker_processes 8; worker_rlimit_nofile 100000; error_log /var/log/nginx/error.log; #error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; pid /var/run/nginx.pid; events { worker_connections 1024; use epoll; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; client_max_body_size 300M; tcp_nopush on; tcp_nodelay on; server_tokens off; gzip on; gzip_static on; gzip_comp_level 5; gzip_min_length 1024; keepalive_timeout 300; limit_zone myzone $binary_remote_addr 10m; # Load config files from the /etc/nginx/conf.d directory include /etc/nginx/sites/*; } 

And the vhost for the site:

server { listen 80; server_name www.x.com x.com; access_log /var/log/nginx/x.com-access.log; location / { index index.html index.htm index.php; root /var/www/x.com; if (!-e $request_filename) { rewrite ^/([a-z,0-9]+)$ /$1.php last; rewrite ^/file/(.*)$ /file.php?file=$1; } location ~ /engine/.*\.php$ { return 404; } location ~ ^/([a-z,0-9]+)\.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } } 

Am I missing something here?

1
  • 2
    Did you find a solution? Commented Sep 5, 2011 at 17:27

3 Answers 3

2

If you are experiencing this issue, where client_max_body_size does not seem like it is being respected, make sure that all of your servers that web traffic passes through have this configuration setting correctly configured. In my case, I configured the application servers but had forgotten to configure the load balancer with the setting.

1

Try moving client_max_body_size to inside the server block.

1
  • Sorry I took so long to get back to you. I tried that originally, and it didn't seem to work either. Commented Dec 6, 2010 at 23:58
1

You might be setting client_max_body_size in multiple locations or files. For example, the last line of your config includes any config files from the sites directory: include /etc/nginx/sites/*

Find all occurrences of client_max_body_size by running this command in your nginx directory:

sudo grep -R 'client_max_body_size' ./* 

If you remove or update all those occurrences, you should be in good shape. I had the same issue and was racking my mind as to what it could be.

JP

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.