It is very common to see a 504 Gateway Time-out using Nginx webserver. This timeout error is generated often by a number of reasons on the backend connection that is serving content. To fix it, you will have to figure out what configuration are you using.
1. For Nginx + FastCGI (php-fpm), you should try to tweak nginx configuration in this way-:
Try raising max_execution_time setting in php.ini file (CentOS path is /etc/php.ini) :
--> max_execution_time = 300
But, you should also change set request_terminate_timeout parameter (commented by default) at
www.conf file from PHP-FPM :
--> pico -w /etc/php-fpm.d/www.conf
Then set the variable to the same value as max_execution_time :
--> request_terminate_timeout = 300
Now let’s add fastcgi_read_timeout variable inside our Nginx virtual host configuration :
location ~ \.php$ {
root /var/www/sites/nginxtips.com;
try_files $uri =404;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_read_timeout 300;
}
Then restart nginx :
--> service nginx restart
2. For Nginx as Proxy for Apache web server, this is what you have to try :
Add this variables to nginx.conf file:
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
Then restart nginx :
--> service nginx reload