504 Gateway Time-out using Nginx
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.
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) or (Debian path is /etc/php5/fpm/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 (CentOS path is /etc/php-fpm.d/www.conf) or (Debian path is : /etc/php5/fpm/pool.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$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_read_timeout 300; }
In another cases we have the control of the timeout into the Nginx Server configuration like this into nginx.conf
## Timeouts ## # Timeout for reading of the client body client_body_timeout 300; # Timeout for reading the client header client_header_timeout 300; # Timeout for keep-alive keepalive_timeout 300; # Timeout for response request send_timeout 300; ## Timeouts ##
Then restart nginx:
service nginx reload
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