Lỗi 502 Bad Gateway 
Giới thiệu 
Lỗi 502 Bad Gateway là một mã trạng thái HTTP cho biết rằng một máy chủ (thường là reverse proxy hoặc gateway) đã nhận được phản hồi không hợp lệ từ máy chủ upstream mà nó đang cố gắng truy cập.
Nguyên nhân phổ biến 
1. Server Backend không phản hồi 
- Application server (PHP-FPM, Node.js, Python) bị crash hoặc không chạy
- Database server không kết nối được
- Timeout khi xử lý request
2. Vấn đề với Reverse Proxy 
- Nginx hoặc Apache cấu hình sai upstream
- Timeout settings quá ngắn
- Buffer size không đủ
3. Tài nguyên hệ thống 
- RAM đã hết
- CPU overload
- Disk space đầy
4. Network Issues 
- Firewall chặn kết nối
- DNS không phân giải đúng
- Port không mở
Cách khắc phục 
Kiểm tra Application Server 
Qua FlashPanel (Khuyên dùng) 
- Vào FlashPanel
- Chọn Server của bạn
- Vào tab Applications
- Kiểm tra trạng thái trong danh sách ứng dụng: - Active: Ứng dụng đang chạy bình thường
- Inactive: Ứng dụng đã dừng hoặc có vấn đề
 
- Nếu trạng thái là Inactive, click vào ứng dụng để xem chi tiết và khởi động lại
Qua Command Line 
PHP-FPM
bash
# Kiểm tra trạng thái PHP-FPM
sudo systemctl status php8.2-fpm
sudo systemctl status php-fpm
# Xem logs
sudo tail -f /var/log/php8.2-fpm.log
sudo tail -f /var/log/php-fpm/error.log
# Restart service
sudo systemctl restart php8.2-fpmNode.js / PM2
bash
# Kiểm tra processes
pm2 list
pm2 status
# Xem logs
pm2 logs
# Restart
pm2 restart allKiểm tra Nginx 
Qua FlashPanel (Khuyên dùng) 
- Truy cập vào site của bạn trong FlashPanel
- Vào tab Nginx
- Bấm vào nút Error Log để xem error log
- Kiểm tra các lỗi liên quan đến upstream connections hoặc timeouts
Qua Command Line 
bash
# Test cấu hình
sudo nginx -t
# Xem logs
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/nginx/access.log
# Restart Nginx
sudo systemctl restart nginxCấu hình Nginx timeout 
nginx
http {
    # Tăng timeout settings
    proxy_connect_timeout 600;
    proxy_send_timeout 600;
    proxy_read_timeout 600;
    send_timeout 600;
    
    # Tăng buffer size
    proxy_buffer_size 128k;
    proxy_buffers 4 256k;
    proxy_busy_buffers_size 256k;
}
server {
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_read_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_connect_timeout 300;
    }
}Kiểm tra tài nguyên hệ thống 
bash
# Kiểm tra RAM
free -h
# Kiểm tra CPU
top
htop
# Kiểm tra disk space
df -h
# Kiểm tra processes
ps aux | grep php-fpm
ps aux | grep nginx
ps aux | grep nodeKiểm tra kết nối 
bash
# Test kết nối đến upstream
telnet localhost 9000  # PHP-FPM
telnet localhost 3000  # Node.js app
# Kiểm tra port đang lắng nghe
sudo netstat -tulpn | grep LISTEN
sudo ss -tulpn | grep LISTEN
# Test DNS
nslookup domain.com
dig domain.comDebug Laravel Application 
Kiểm tra Laravel logs 
bash
tail -f storage/logs/laravel.logTăng PHP memory limit 
ini
# php.ini
memory_limit = 512M
max_execution_time = 300Kiểm tra PHP-FPM pool config 
ini
; /etc/php/8.2/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500Checklist nhanh 
- ✅ Kiểm tra application server đang chạy
- ✅ Kiểm tra logs (nginx, php-fpm, application)
- ✅ Kiểm tra tài nguyên hệ thống (RAM, CPU, Disk)
- ✅ Kiểm tra cấu hình timeout
- ✅ Kiểm tra kết nối network
- ✅ Restart các services cần thiết
Tools hữu ích 
- htop: Monitor CPU và RAM real-time
- iotop: Monitor disk I/O
- nethogs: Monitor bandwidth per process
- tcpdump: Analyze network traffic
- strace: Debug system calls
- lsof: List open files và network connections