مرکز آموزش
-
NGINX 502 Bad Gateway
NGINX 502 Bad Gateway
خطای 502 Bad Gateway به صورت های زیر در وب سرویس نمایش داده می شود.
- 502 Bad Gateway
- 502 Bad Gateway NGINX
- 502 Service Temporarily Overloaded
- 502 Proxy Error
- Error 502
- HTTP Error 502 – Bad Gateway
- HTTP 502
- HTTP 502 Webservice currently unavailable
چه زمانی شما 502 Bad Gateway دریافت می کنید:
- هنگامیکه Nginx به عنوان Proxy با وب سرور Apache کار می کند و نمی تواند به وب سرویس Apache متصل گردد.
- هنگامیکه Nginx به PHP-FPM کار می کند و نمی تواند به PHP-FPM متصل گردد.
- به طور کلی هنگامیکه وب سرویس Nginx به دلیل Timeout نمی تواند به سرویس های خارجی که به صورت Gateway خروجی کار می کند ارتباط برقرار کند.
- Bad Buffering/Timeout Configuration
- مشکلات شبکه و روتینگ: این مورد عملا برروی سرویس های اینترنتی ایران رخ می دهد که در برخی اوقات به دلیل اینکه وب سرویس های به صورت Stream و خصوصیاتی همچون Brotli, Gzip , ... می خواهند یک بسته را به صورت کامل دریافت کنند، شبکه های غیر پایدار عملا در هنگام ارسال اطلاعات قطع/وصل می شوند.
- عدم وجود منابع کافی برروی سرویس در لحظه پردازش عموما برروی حافظه اصلی رم
- وجود روبات ها برروی سرویس شما و استفاده بیش از حد از سوکت های وب سرویس
نحوه برطرف نمودن موارد خطای 502 Bad Gadway
برروی بستر ابری میزبان پایتخت همواره تمامی سیستم ها به صورت لحظه ای در حال Monitoring می باشد لذا در صورتیکه موردی از بابت اتصال به وب سرویس Apache باشد سیستم به صورت خودکار مورد را برطرف می نماید.
بر روی بسترهای ابری معمولا به دلیل اختلالات برنامه نویسی و طولانی شدن زمان Compile صفحات را دریافت Timeout بابت اتصال به سرویس های حارچی همانند سیستم SMS یا Soap بانک ها و سرویس های مشابه که درخواست کاربر منوط به دریافت اطلاعات از سرویس های دیگر می گردد کامپایلر PHP به زمان انقضا و Timeout خود می رسد و به همین دلیل پاسخی به WebService ارائه نمی کند و شما خطای 502 Bad Gateway را دریافت می نمایید.
اگر کاربران وب سایت شما زیاد است حتما از سیستم های کش (Cache) استفاده نمایید، به طور مثال برروی مدیریت محتوا وردپرس می توانید از افزونه WP Fastest Cache یا W3 Total Cache استفاده نمایید.
همچنین استفاده از ماژول های امنیتی Captcha کمک می کند با محافظت کردن از فرم های تماس، ثبت نام، کامنت، ورود و غیره منابع خودتان را صرف روبات ها ننمایید. روبات ها عموما منابع کامپایلر PHP یا سیستم های دیگر را مصرف می کنند لذا داشتن Captcha برروی تمامی فرم ها همیشه پیشنهاد می گردد. مقالات مرتبط با کپچا (Captcha)
عدم وجود منابع کافی برروی حافظه اصلی (رم) سرور مجازی شما نیز موجب می گردد که کامپایلر PHP-FPM نتواند سوکت جدید ایجاد کند که این موضوع موجب می شود شما این خطا را دریافت نمایید که عموما برروی سرورهای مجازی این مورد رخ می دهد و پس از دقایقی کامپایلر مجددا ری استارت می گردد و شما خطا را برای مدت محدودی دریافت نمی کنید زیرا افزایش منابع حافظه اصلی توصیه می شود.