How to Fix Nginx 502 Bad Gateway Error
The 502 Bad Gateway error is one of the most common server issues faced by website owners using Nginx.
When this error occurs, your website becomes inaccessible and displays a message like:
502 Bad Gateway
nginx
This happens when Nginx is unable to communicate with the backend server, usually PHP-FPM or another upstream service.
The good news is that this issue is fixable in most cases within minutes if you follow the right steps.
In this guide, you will learn:
- What causes the 502 Bad Gateway error
- Step-by-step troubleshooting methods
- How to fix PHP-FPM and Nginx issues
- How to prevent the error in the future
What Causes Nginx 502 Bad Gateway Error?
Understanding the cause is the key to fixing the issue.
1. PHP-FPM Not Running
Nginx relies on PHP-FPM to process PHP requests. If it stops, Nginx cannot serve dynamic pages.
2. Incorrect FastCGI Configuration
Wrong socket or port configuration can break communication between Nginx and PHP.
3. Server Overload
High CPU or memory usage can cause backend services to crash.
4. Timeout Issues
If PHP takes too long to respond, Nginx may return a 502 error.
5. Plugin or Script Errors
Faulty WordPress plugins may crash PHP processes.
Step 1: Check Nginx Error Logs
Start by checking logs to identify the root cause.
sudo tail -f /var/log/nginx/error.log
Look for errors such as:
- upstream prematurely closed connection
- connect() failed
- permission denied
These messages give direct clues.
Step 2: Restart Nginx and PHP-FPM
Sometimes services stop unexpectedly.
Restart Nginx:
sudo systemctl restart nginx
Restart PHP-FPM:
sudo systemctl restart php8.1-fpm
Reload your website.
Step 3: Verify PHP-FPM is Running
Check PHP-FPM status:
sudo systemctl status php8.1-fpm
If it’s stopped:
sudo systemctl start php8.1-fpm
Step 4: Check FastCGI Configuration
Incorrect configuration can cause communication failure.
Typical configuration:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
Ensure the socket path matches your PHP version.
Step 5: Increase PHP Limits
Low limits can cause PHP to crash.
Edit:
php.ini
Update:
memory_limit = 256M
max_execution_time = 300
Restart PHP-FPM afterward.
Step 6: Check Server Resources
Check CPU and memory usage:
top
or
htop
If usage is high, consider upgrading your server.
Step 7: Fix File Permissions
Incorrect permissions can block PHP execution.
Directories:
755
Files:
644
Step 8: Disable Faulty Plugins
For WordPress sites:
wp-content/plugins
Rename:
plugins → plugins_backup
Check if the site loads.
Step 9: Increase Nginx Timeout
Edit:
/etc/nginx/nginx.conf
Add:
fastcgi_read_timeout 300;
Restart Nginx.
Step 10: Clear Cache
Clear:
- browser cache
- server cache
- CDN cache
Best Hosting to Avoid 502 Errors
Poor server configuration is a major cause of 502 errors.
Managed platforms provide optimized environments.
👉 Cloudways Managed Hosting

👉 Bluehost Hosting
These platforms handle:
- server optimization
- scaling
- caching
- security
Preventing 502 Errors
Monitor Server Health
Use Caching
Optimize Plugins
Upgrade Resources
Conclusion
The Nginx 502 Bad Gateway error occurs when the server cannot communicate with backend services.
Most cases are caused by:
- PHP-FPM issues
- configuration errors
- server overload
By following the steps in this guide, you can quickly resolve the issue and restore your website.
