What This Means
5xx server errors indicate problems on the server side that prevent it from fulfilling requests. These errors can cause complete site outages or intermittent failures.
Impact
- Complete site inaccessibility during outages
- Lost revenue from failed transactions
- SEO penalties from persistent errors
- Damaged user trust from poor reliability
- Broken tracking from failed page loads
Common 5xx Errors
| Code | Error | Meaning |
|---|---|---|
| 500 | Internal Server Error | Generic server failure |
| 502 | Bad Gateway | Upstream server failure |
| 503 | Service Unavailable | Server overloaded or maintenance |
| 504 | Gateway Timeout | Upstream server timeout |
| 520-530 | Cloudflare Errors | CDN-origin communication issues |
How to Diagnose
Check Server Logs
Apache:
tail -f /var/log/apache2/error.log
Nginx:
tail -f /var/log/nginx/error.log
Application logs:
- Node.js: PM2 logs, application logs
- PHP: php-fpm logs, application error logs
- Python: Application logs, gunicorn/uwsgi logs
Monitor Resources
# CPU and memory
top
htop
# Disk space
df -h
# Active connections
netstat -tuln | wc -l
General Fixes
500 Internal Server Error
Check:
- Application error logs
- Syntax errors in code
- Missing dependencies
- Permission issues
Fix:
# Check file permissions
chmod 644 /var/www/html/*.php
chmod 755 /var/www/html/
# Check PHP syntax
php -l script.php
502 Bad Gateway
Causes:
- Backend server not running
- Backend server overloaded
- Timeout on backend response
Fix:
# Restart application server
sudo systemctl restart php-fpm
sudo systemctl restart gunicorn
# Increase timeout
# Nginx example:
proxy_read_timeout 300s;
503 Service Unavailable
Causes:
- Server maintenance
- Server overloaded
- Rate limiting triggered
Fix:
- Scale up server resources
- Implement load balancing
- Optimize slow endpoints
- Enable caching
504 Gateway Timeout
Causes:
- Slow database queries
- Long-running scripts
- Network issues to upstream
Fix:
# Increase timeout values
# Nginx:
proxy_read_timeout 120s;
proxy_connect_timeout 120s;
# PHP:
max_execution_time = 120
Prevention
1. Implement Monitoring
Set up alerts for:
- Error rate thresholds
- Response time increases
- Server resource usage
- Uptime checks
2. Auto-Scaling
Configure automatic scaling:
- CPU-based scaling
- Request-based scaling
- Scheduled scaling for known traffic spikes
3. Load Balancing
Distribute traffic across servers:
- Active-passive failover
- Round-robin distribution
- Health check-based routing
4. Graceful Degradation
Plan for partial failures:
- Cached fallback pages
- Queue long-running tasks
- Circuit breakers for external services
Platform-Specific Guides
| Platform | Error Handling |
|---|---|
| Shopify | Managed by Shopify |
| WordPress | Check hosting/plugins |
| Squarespace | Managed by Squarespace |
| Custom | Full server access required |