In this tutorial, we will show you how to fix 502 bad gateway errors on the Nginx web server. If you run an Nginx web server you may have already encountered the annoying 502 bad gateway errors. This is a pretty common error and is generated most probably by the PHP or FastCGI buffer and timeout settings. This tutorial shows you how to fix Nginx 502 bad gateway on the Nginx webserver. This post shows how to fix this problem, and the configuration option to prevent it from occurring again on reboot.
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 solves 502 bad gateway errors on the Nginx web server.
Prerequisites
- A server running one of the following operating systems: Debian-based or RHEL-based.
- SSH access to the server (or just open Terminal if you’re on a desktop).
- An active internet connection.
- 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 502 Bad Gateway Error on Nginx
Step 1. First, check the data log Nginx webserver.
You can see in greater detail what the error specifically entails by going to your web server’s error log file. All error and diagnostic information are stored in this file making it a valuable resource to check when you need more details about a particular error. You can locate this file in Nginx by going to /var/log/nginx/error.log
.
Step 2. Check the Nginx Configuration.
One possible cause of a 502 Bad Gateway error is an incorrect or incomplete Nginx configuration. To check the configuration, run the following command:
nginx -t
Step 3. Increase the Buffer Size.
By default, Nginx has a relatively small buffer size for handling responses from the upstream server. If the response is larger than the buffer size, Nginx will return a 502 Bad Gateway error. To increase the buffer size, add the following lines to the http
section of your Nginx configuration file:
http { ... proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; ... }
These values can be adjusted depending on your needs. Save the file and reload Nginx for the changes to take effect:
sudo systemctl reload nginx
Step 4. Adjust the Timeout Settings.
You can also fix the 502 Bad Gateway Error on Nginx by adjusting the timeout settings. To do this, add the following lines to your Nginx configuration file:
http { ... proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; ... }
Step 5. Disable SELinux.
If you have SELinux enabled and it is blocking Nginx from making outbound connections, you may encounter a 502 Bad Gateway error. To check if SELinux is enabled, run the following command:
sestatus
If SELinux is enabled, you can try disabling it temporarily to see if it resolves the issue:
sudo setenforce 0
This command sets SELinux to permissive mode, which allows all actions but still logs any violations. If the 502 error goes away, you can try to adjust the SELinux policy to allow Nginx to make outbound connections.
Congratulations! You have successfully solved 502 bad gateway issues. Thanks for using this tutorial to fix 502 bad gateway issues on the Linux system. For additional help or useful information, we recommend you check the official Nginx website.