502 Bad Gateway را Nginx وقتی میدهد که از سرویس بالادست — معمولاً PHP-FPM — پاسخ سالم نگرفته. در این حالت ممکن است اصلاً به کد Laravel یا وردپرس نرسیده باشید.
علتهای پرتکرار
- سرویس PHP-FPM خوابیده یا بعد از تغییر نسخه PHP، سوکت عوض شده و Nginx هنوز سوکت قبلی را صدا میزند
- پاسخ PHP طولانیتر از مهلت Nginx است و اتصال قطع میشود
- PHP بهخاطر حافظه یا یک خطای سطح پایین، قبل از خروجی فرآیند را میبندد
- اشتباه بودن آدرس
fastcgi_passبعد از تعویض سرور
کجا را ببینید
لاگ خطای Nginx و لاگ PHP-FPM را با هم مقایسه کنید. اگر در لاگ Nginx عبارت connection refused یا upstream timed out هست، مشکل در رسیدن به PHP است. اگر PHP یک fatal نوشته و بعد اتصال بسته شده، باید همان fatal را رفع کرد.
روی هاست اشتراکی اغلب به این لاگها دسترسی کامل نیست. در آن حالت باید از خود پنل دید کدام نسخه PHP فعال است و آیا سایت اصلاً به PHP میرسد یا نه.
اگر سایت با ۵۰۲ بالا نمیآید، شرح را در صفحه مشکلات سرور و هاست بفرستید.