Follow Me:
Showing posts with label Apache Server. Show all posts
Showing posts with label Apache Server. Show all posts

Friday 1 May 2015

Nginx: 413 Request Entity Too Large Error and Solution

  My application is running nginx as a frond end to php based Apache server. My applicatio lets user upload images upto 2MB in size. When users trying to upload 1.5MB+ size image file using nginx reverse proxy, they are getting the following error on screen:


    Nginx 413 Request Entity Too Large

You need to configure both nginx and php to allow upload size.

Nginx configuration:

The client_max_body_size directive assigns the maximum accepted body size of client 
 request, indicated by the line Content-Length in the header of request.

If size is greater the given one, then the client gets the error "Request Entity Too Large" 
(413). To fix this issue edit your nginx.conf.
  
Open the Terminal or login to the remote server using ssh client. 
Type the following command to edit your nginx.conf using a text editor such as vi or joe:

 
# vi /etc/nginx/nginx.conf
 
OR 
 
# vi /usr/local/nginx/conf/nginx.conf
Add the following line to http or server or location context to increase 
 the size limit 
 in nginx.conf, enter:

# set client body size to 2M #
client_max_body_size 2M;
 

Save and close the file. Reload the nginx webserver, enter:
# /usr/local/nginx/sbin/nginx -s reload
OR
# /sbin/nginx -s reload
OR use the following on RHEL/CentOS/Debian/Ubuntu Linux:
# service nginx reload 
 
 

PHP configuration (optional):


Your php installation also put limits on upload file size. Edit php.ini and set the following directives ;This sets the maximum amount of memory in bytes that a script is allowed
to allocate memory_limit = 32M ;The maximum size of an uploaded file. upload_max_filesize = 2M ;Sets max size of post data allowed.This setting also affects file upload.
To upload large files, this value must be larger than upload_max_filesize post_max_size = 3M Save and close the file. Make sure you reload/restart back-end apache or
nginx web server as per your setup