خطای 502 Bad Gateway چیست؟
خطای 502 Bad Gateway زمانی رخ میدهد که یک سرور (Gateway یا Proxy) از سرور بالادستی (Upstream) پاسخ نامعتبر دریافت کند. معمولاً وقتی Nginx یا LiteSpeed درخواست را به PHP-FPM یا Apache ارسال میکند و پاسخی دریافت نمیکند.
دلایل رایج
۱. PHP-FPM خاموش یا کرش کرده
شایعترین دلیل. بررسی:
systemctl status php-fpm
systemctl restart php-fpm
۲. Apache خاموش
اگر Nginx به عنوان Reverse Proxy جلوی Apache است:
systemctl status httpd
systemctl restart httpd
۳. تایماوت PHP
اسکریپت PHP بیش از حد مجاز طول کشیده.
۴. کمبود RAM
سرور رم کافی ندارد و PHP-FPM کرش میکند.
۵. پر شدن فضای دیسک
df -h
عیبیابی
بررسی لاگها
# لاگ Nginx
tail -50 /var/log/nginx/error.log
# لاگ PHP-FPM
tail -50 /var/log/php-fpm/error.log
# لاگ Apache
tail -50 /var/log/httpd/error_log
بررسی سرویسها
systemctl status php-fpm httpd nginx lsws
بررسی RAM
free -h
رفع
ریاستارت سرویسها
systemctl restart php-fpm
systemctl restart httpd
# یا
systemctl restart lsws
افزایش Timeout
در Nginx:
proxy_read_timeout 300;
proxy_connect_timeout 300;
در PHP-FPM:
request_terminate_timeout = 300
افزایش pm.max_children
در تنظیمات PHP-FPM Pool:
pm.max_children = 50
pm.start_servers = 10
pm.max_spare_servers = 20
پیشگیری
مانیتورینگ سرویسها با Monit، RAM و دیسک کافی، بهینهسازی PHP-FPM و استفاده از LiteSpeed به جای Apache+Nginx.
اگر مرتباً 502 میبینید، سرور مجازی با RAM بیشتر توصیه میشود. کانفیگ سرور شامل بهینهسازی PHP-FPM و وبسرور. هاست وردپرس میهن هاستینگ با LiteSpeed این مشکل را ندارد.