جديدالجمعة السوداء: خصم ٥٠٪ على دفعتك الأولى
استكشاف أخطاء ووردبريس

504 بوابة المهلة

PHP كان لا يزال يعمل عندما تخلى خادم الويب عن الانتظار. لم يتعطل شيء - استغرق الأمر ببساطة وقتًا أطول مما تسمح به المهلة.

504 Gateway Timeout

الإجابة المختصرة

شيء ما في الطلب بطيء ، ورفع المهلة يعني فقط الانتظار لفترة أطول لنفس الصفحة. حدد الخطوة البطيئة أولاً: استعلام أو مكالمة واجهة برمجة تطبيقات صادرة أو استيراد يعمل داخل طلب ويب.

التشخيص

الأسباب الأرجح أولًا.

افحص القائمة بالترتيب. يتيح لك كل فحص تأكيد السبب أو استبعاده قبل تغيير أي شيء، لأن الحلول تختلف والتخمين يكلّف أكثر من تنفيذ أمر للتحقق.

السببكيفية التحققالإصلاح
طلب HTTP صادر بدون مهلةيستدعي عنوان URL البطيء طرفًا ثالثًا - فحص الترخيص ، خلاصة ، بوابة دفع. إنه سريع عندما تكون هذه الخدمة سريعة.تعيين مهلة واضحة على المكالمة الصادرة وذاكرة التخزين المؤقت للاستجابة. ينتظر WordPress لفترة أطول افتراضيًا أكثر من أي زائر.
استعلام بدون فهرس خلفهالصفحة البطيئة هي أرشيف تمت تصفيته أو تقرير، وتعرض قاعدة البيانات نفس الاستعلام في الجزء العلوي تحت التحميل.أضف الفهرس الذي يحتاج إليه الاستعلام. المسح الضوئي الذي كان جيدًا في عشرة آلاف صف هو مهلة عند مليون.
استيراد أو تصدير يعمل في طلب ويبالمهلة تحدث فقط على إجراء المشرف الذي بدأته، ويفشل في نفس الوقت تقريبا المنقضي كل محاولة.نقل المهمة إلى WP-CLI أو تشغيل خلفية مجزأة. علامة تبويب المتصفح هي المكان الخطأ للعمل الذي يقاس بالدقائق.
تتراكم Cron على تحميلات الصفحةويهبط التأخير على عناوين URL العادية للواجهة الأمامية ، بشكل متقطع ، على موقع يحتوي على قائمة أحداث طال انتظارها.تعطيل WP-Cron وقيادته من جدولة النظام ، لذلك يتوقف العمل المجدول عن تحميله على أي زائر يصل أولاً.
المهلة قصيرة جدا حقا للعمل.كل شيء أعلاه مستبعد والعملية طويلة بشكل شرعي - نسخة احتياطية كبيرة ، تحويل وسائط كبير.رفع المهلة لهذا المسار فقط. رفعه على الصعيد العالمي يزيل السقف الذي يوقف طلبًا سيئًا واحدًا يشغل عاملًا.
الدليل

الإصلاح خطوة بخطوة.

تفترض الأوامر توفر WP-CLI والوصول إلى سطر الأوامر. إن لم يتوفرا، تشرح كل خطوة الإجراء كي تنفذه من لوحة التحكم أو عبر SFTP.

  1. معرفة أي URL بطيء

    سجل الوصول يسجل كم من الوقت استغرق كل طلب. فرز حسب ذلك والإجابة عادة ما تكون سطر واحد.

    awk '{print $NF, $7}' /var/log/nginx/access.log | sort -rn | head -n 10
  2. اسأل قاعدة البيانات عن الوقت الذي تقضيه في

    يظهر استعلام طويل الأمد هنا بينما لا تزال الصفحة قيد التحميل.

    mysql -e 'SHOW FULL PROCESSLIST;' | head -n 20
  3. تحقق مما إذا كان كرون هو الراكب

    وتعني القائمة التي طال انتظارها أن الزوار يديرون العمل المقرر.

    wp cron event list --status=due --fields=hook,next_run_relative
  4. نقل وظيفة طويلة من الطلب

    نفس الاستيراد الذي مرات في المتصفح عادة ما يكمل من سطر الأوامر، لأن لا شيء ينتظر على ذلك.

    wp import large-file.xml --authors=create
  5. الآن فقط، النظر في المهلة

    وارتقاء به إلى الطريق الذي يحتاج إليه بدلا من كل مكان.

    wp config set WP_MAX_MEMORY_LIMIT '512M'
على MagicWP

ما تتولاه المنصة عنك.

يتم تشغيل العمل المجدول على جدولة النظام الحقيقي بدلاً من أي زائر يحدث للوصول ، لذلك السبب العرضي الأكثر شيوعًا للصفحة البطيئة غائب من البداية. الوظائف الطويلة لها حدودها الخاصة في سياق cron بدلاً من استعارة تلك المخصصة لطلبات الويب ، والحاويات في الموقع تعني أن الطلب الذي يمتد لفترة طويلة يشغل العاملين لديك فقط.

الأسئلة الشائعة

الأسئلة الشائعة.

هل يجب أن أزيد المهلة؟
نادراً ما يحدث ذلك، وليس الأول أبداً. يعني وقت التوقف الأعلى أن الزائر ينتظر لفترة أطول قبل رؤية نفس الفشل، ويزيل السقف الذي يوقف طلب واحد يربط العامل إلى أجل غير مسمى.
لماذا يتم تحميل نفس الصفحة بشكل جيد في بعض الأحيان؟
لأن المكون البطيء ليس دائمًا بطيئًا. واجهة برمجة تطبيقات تابعة لجهة خارجية لديها دقيقة سيئة ، أو استعلام جيد حتى تكون ذاكرة التخزين المؤقت باردة ، كلاهما ينتج صفحة تعمل حتى لا تعمل.
أوقات الاستيراد الخاصة بي في نفس النقطة بالضبط في كل مرة.
هذا حد وليس مصادفة. قم بتشغيله من WP-CLI ، أو في قطع تسجل موضعها ، لذلك يستأنف التشغيل المتقطع بدلاً من التكرار.
هل 504 سببه اتصال زواري؟
لا. يتم إنشاؤه بين خادم الويب و PHP ، وكلاهما على جانب الخادم. يرى الزائر ذو الاتصال البطيء صفحة بطيئة ، وليس 504.
أخطاء مرتبطة

إن لم يكن هذا هو السبب.

قد تبدو هذه الأخطاء متشابهة في المتصفح.