In this tutorial, we will show you how to fix 504 gateway time-out on the Nginx web server on the Linux server. Nginx is a popular web server that can be used to host websites and web applications. If you run an Nginx web server you may have already encountered the annoying 504 Gateway Time-out errors. This is a pretty common error and is generated most probably by the PHP max execution time limit, or by the FastCGI read timeout settings.
This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo
‘ to the commands to get root privileges. I will show you the step-by-step installation to fix Nginx 504 gateway timeout on the Nginx webserver.
Prerequisites
- A server running one of the following operating systems: RHEL-based such as CentOS, AlmaLinux, or Rocky Linux.
- It’s recommended that you use a fresh OS install to prevent any potential issues.
- SSH access to the server (or just open Terminal if you’re on a desktop).
- A
non-root sudo user
or access to theroot user
. We recommend acting as anon-root sudo user
, however, as you can harm your system if you’re not careful when acting as the root.
Fix 504 Gateway Time-out on Nginx
- Changes in php.ini
Try raising the max_execution_time
setting in php.ini
a file (The CentOS path is /etc/php.ini
):
max_execution_time = 150
- Changes in PHP-FPM
Try raising the request_terminate_timeout
setting in the php.ini
file (CentOS path is /etc/php-fpm.d
):
request_terminate_timeout = 150
- Changes in Nginx Config
Finally, add the fastcgi_read_timeout
variable inside our Nginx virtual host configuration:
location ~* \.php$ { include fastcgi_params; fastcgi_index index.php; fastcgi_read_timeout 150; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
Reload PHP-FPM and Nginx
sudo systemctl restart php-fpm sudo systemctl restart nginx
For Nginx as Proxy for the Apache web server, this is what you have to try to fix the 504 Gateway Timeout error:
Add the following variables to nginx.conf
file:
proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; send_timeout 300;
Once complete, simply reload Nginx:
sudo nginx -t sudo systemctl restart nginx
Congratulations! You have successfully fixed the error Nginx 504 gateway time out. Thanks for using this tutorial to fix 504 gateway timeout errors in the Linux system. For additional help or useful information, we recommend you check the official Nginx website.