خطای 504 Gateway Timeout

علائم و نشانه‌ها

  1. سایت شما پشت محافظت ابری کلودگارد قرار دارد اما به جای محتوای سایت، خطای Gateway Timeout دریافت می‌شود.
  2. سایت شما پشت محافظت ابری کلودگارد قرار دارد، اما محتوای نمایش داده شده قدیمی است و در هدر CG-Cache-Status کلمه STALE دیده می‌شود و بعد از رفرش و گذر زمان هم عوض نمی‌شود.

راه‌حل سریع پیشنهادی

  1. ارتباط وب‌سرور خود (origin) با کلودگارد را بررسی کنید. احتمال دارد ارتباط بین دو دیتاسنتر قطع است.
  2. تجهیزات فایروال و IPS خود را چک کنید. رنج آدرس کلودگارد را تراست (trust) کنید و هیچگونه محافظتی به خصوص آنتی‌دیداس یا محدودیت تعداد کانکشن اعمال ننمایید.
  3. لاگ تجهیزات و فایروال خود را بررسی کنید که آدرس‌های کلودگارد مسدود نشده باشند.

علت مساله

علت این مساله در یک کلمه، عدم امکان دریافت اطلاعات از سرور مبدا توسط سرور CDN کلودگارد و تایم‌اوت (Timeout) شدن آن است.

این مساله می‌تواند دلایل مختلفی داشته باشد:

  1. متداول‌ترین دلیل برای این موضوع، وجود یک تجهیز امنیتی (اصولا در دیتاسنتر سرور مبدا مشتری) است که ارتباط را غیرمتعارف تشخیص داده و مسدود می‌کند.
    • تجهیزات امنیتی مانند فایروال‌ها و UTMها امکاناتی برای مقابله با DOS و DDOS دارند که تعداد بالای درخواست از یک آدرس را مسدود می‌کند.
    • از آنجاکه وقتی سایت شما پشت CDN قرار می‌گیرد، تمامی درخواست‌های کاربران که تا پیش از این از آدرس آی‌پی خود آنها به سرور مبدا می‌رسید، اکنون همگی از یک آدرس آی‌پی واحد (آدرس CDN) به دست سرور مبدا می‌رسد، تجهیزات سرور مبدا این تعداد اتصال از یک آی‌پی را نامتعارف تشخیص داده و بلاک می‌کنند.
    • حالت دیگر این است که WAF یا IPS یا سامانه هوشمند مشابهی که در دیتاسنتر سرور مبدا مشتری قرار دارد، امضای یک حمله را در ترافیک ورودی کشف می‌کند. از آنجاکه معمولا این مکانیزم‌ها حساس به آی‌پی مبدا حمله هستند، با تشخیص یک حمله، کل آی‌پی را بلاک می‌کنند که منجر به بلاک شدن آدرس CDN و قطع شدن کامل سایت می‌شود.
    • خواندن لاگ‌های این تجهیزات، بررسی تنظیمات آنها بخصوص تنظیمات مرتبط و تراست نمودن آدرس‌های کلودگارد روش‌های رفع این مشکل است.
  2. تنظیمات اشتباه ارتباط با سرور مبدا:
    • شما می‌توانید تعیین کنید که ارتباط سرور CDN کلودگارد با سرور مبدا شما بر روی چه پورتی (۸۰ یا ۴۴۳) باشد.
    • اگر سرور مبدا شما فقط به درخواست‌های HTTP (پورت ۸۰) پاسخ می‌دهد یا فقط به درخواست‌های HTTPS (پورت ۴۴۳) پاسخ می‌دهد، احتمال دارد این تنظیم در پنل کلودگارد به درستی انجام نشده است.
    • در پنل کلودگارد، در بخش HTTPS این تنظیمات به سه حالت HTTP/HTTPS/Both (خودکار) قابل انجام است.
  3. دلیل دیگر این رخداد می‌تواند در حوزه ارتباط بین دو دیتاسنتر CDN و سرور مبدا باشد.
    • چنین مواردی هر چند نادر هستند، اما باید بررسی شوند.
    • جهت بررسی این موضوع می‌توانید از سمت دیتاسنتر خود، آدرس‌های کلودگارد را پینگ نمایید.
    • در موارد حاد، و بعد از بررسی تغییرات دیتاسنتر خود، جهت بررسی دقیق موضوع توسط کلودگارد تیکت ثبت نمایید.