Prevent nginx 504 Gateway timeout using PHP set_time_limit()
There are several ways in which you can set the timeout for php-fpm. In /etc/php5/fpm/pool.d/www.conf
I added this line:
request_terminate_timeout = 180
Also, in /etc/nginx/sites-available/default
I added the following line to the location block of the server in question:
fastcgi_read_timeout 180;
The entire location block looks like this:
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_read_timeout 180;
include fastcgi_params;
}
Now just restart php-fpm and nginx and there should be no more timeouts for requests taking less than 180 seconds.
Try this link, it has a better solution on how to fix this. So the steps are:
- Open your
nginx.conf
file located in/etc/nginx
directory. -
Add this below piece of code under
http {
section:client_header_timeout 3000; client_body_timeout 3000; fastcgi_read_timeout 3000; client_max_body_size 32m; fastcgi_buffers 8 128k; fastcgi_buffer_size 128k;
Note: If its already present , change the values according.
-
Reload Nginx and php5-fpm.
$ service nginx reload $ service php5-fpm reload
If the error persists, consider increasing the values.