نجاح أمر nginx -t لا يعني أن الموقع سيكون قابلاً للفتح. لقد واجهنا حادثةً واحدةً أدت إلى تعطّل الموقع بالكامل: كانت نتيجة فحص بنية الجملة خضراء تمامًا، لكن إعادة التوجيه 301 المُحدَّدة بدقة وم directive try_files تسببتا في حلقة إعادة توجيه متبادلة، ما أدى إلى ظهور رسالة المتصفح "عدد عمليات إعادة التوجيه كبير جدًا". يوفّر لك هذه الأداة عنصرين: هيكل تهيئة nginx (مع شرح جميع الأخطار في التعليقات)، وبرنامج نصي حقيقي للفحص الذاتي عبر HTTP (لا يفحص البنية فقط، بل يتحقق أيضًا من رموز الحالة وعدد عمليات إعادة التوجيه).
صف واحد لكل عنوان URL. يجب تضمين الصفحة الرئيسية، ويجب تضمين صفحة واحدة على الأقل من الصفحات الفرعية.
—
—
1 · تسبب إعادة التوجيه الدقيقة باستخدام location + 301 في حلقة لا نهائية.اكتب location = /path { return 301 …; }، بينما try_files كما أن إعادة توجيه الطلب داخليًّا مرة أخرى إلى نفس الموقع (`location`) تؤدي إلى ظهور رسالة المتصفح "عدد كبير جدًّا من عمليات إعادة التوجيه"، ما يجعل الموقع بأكمله غير قابل للوصول.nginx -t لا يمكن اكتشافها تمامًا.
2 · التخزين المؤقت الطويل + غياب رقم الإصدار = يبدو التعديل «غير مُفعَّل».لقد وقعّنا في نفس الفخ ثلاث مرات (مرتين مع ملفات CSS ومرة واحدة مع ملفات JS). القاعدة بسيطة:إذا قمت بتعيين expires، فيجب إضافته إلى ملفات css/js أيضًا ?v=؛ قم بالتعديل مرة واحدة، ثم الترقية مرة واحدة.
3 · يجب أن يظهر العنصر <base href> قبل جميع الموارد النسبية.مكتوب في <link> بعد ذلك، ستقوم الصفحات الثانوية بتحليل ملفات CSS إلى دليل خاطئ، مما يؤدي إلى فشل تنفيذ الأنماط بصمت — ولا يمكن ملاحظة هذا الفشل على الإطلاق في الصفحات الأولية.
4 · لا تضع بيانات الخلفية خلف المصادقة الأساسية (basic auth) لاستخدامها عبر دالة fetch.لا يمكن التحكم في ذاكرة التخزين المؤقت للمصادقة الخاصة بالطلبات الفرعية في المتصفح، مما يؤدي إلى علوق الصفحة دائمًا عند حالة "جارٍ التحميل". غيِّر النهج إلى "تسجيل الدخول عبر الصفحة + نقل البيانات مع معلَّمة المفتاح".
5 · وكيل محلي يُحدث إنذارات كاذبة.أضف دائمًا للتحقق مما إذا كان الموقع متاحًا عبر الإنترنت --noproxy '*'؛ لقد أخطأنا في تفسير رمز الحالة 410 الذي أعادته الوكيل على أنه "تعطل الموقع"، بينما كان الرمز الفعلي هو 200.