خوادم الويب والوكلاء العكسيين
nginx: خادم الويب الذي يقيس حلقات الأحداث
يعالج nginx المزيد من حركة مرور الويب أكثر من أي خادم آخر لسبب بنيوي: فهو يحل C10K باستخدام نموذج غير متزامن يحركه الحدث بدلاً من خيط لكل اتصال. من الناحية العملية، فإنه يلعب دورين في وقت واحد، خادم ملفات ثابت خفيف الوزن والوكيل العكسي الافتراضي للصناعة، ومعظم عمليات النشر الحقيقية هي الثانية. يحدد الانضباط التشغيلي المحيط به (اختبار التكوين، ومراقبة السجل، وأتمتة TLS) ما إذا كانت هذه القوة هادئة أم هشة.
النقاط الرئيسية
- إن بنية حلقة الحدث هي الحجة بأكملها: يتعامل عدد صغير من العمليات المنفذة مع آلاف الاتصالات باستخدام مفاتيح سياق رخيصة، وهذا هو السبب وراء تفوق nginx في توكيل العديد من العملاء البطيئين (الأصول الثابتة، ومستخدمي الهاتف المحمول المتلقين للمعلومات) دون حرق الذاكرة لكل اتصال بالطريقة التي تعمل بها تصميمات سلاسل الرسائل لكل طلب.
- دوران في ثنائي واحد: تخدم كتل الخادم محتوى ثابتًا وتطبق عمليات إعادة الكتابة؛ تقوم كتل proxy_pass بإنهاء TLS وإعادة توجيهها إلى الخدمات الأولية، مع السلوكيات المجاورة للصحة (max_fails، المهلات، التخزين المؤقت) التي تمثل سطح التكوين بدلاً من الوحدات النمطية، وهو أكبر تحول منفرد في العادة من تفكير Apache.
- يعد نظام التكوين مملًا وإلزاميًا: nginx -t بعد كل تعديل، يتم تضمين ملف واحد لكل موقع، لذا تكون عمليات الإرجاع عملية جراحية، وإعادة التحميل (وليس إعادة التشغيل) كإجراء التغيير المباشر؛ إن نشر التكوين الذي يفشل في اختبار بناء الجملة هو نوع الانقطاع الذي يكلف فترة ما بعد الظهر ولكن يمكن منعه بالكامل.
- TLS عبارة عن طبقة من الدرجة الأولى: خيارات البروتوكول الحديثة، وإعدادات استئناف الجلسة، وتدبيس OCSP، مع الإصدار الآلي لـ acme.sh أو certbot؛ إن خطاف التجديد الذي تم تكوينه بشكل خاطئ والذي يفشل بصمت لمدة 60 يومًا هو انقطاع nginx الكلاسيكي، لذا انتبه إلى عمر الشهادة بدلاً من مراقبة انتهاء الصلاحية.
- الحدود الصادقة: لا يوجد نظام بيئي ديناميكي للوحدة مثل Apache (وحدات وقت الترجمة الثابتة، لذا تتطلب ميزات الطرف الثالث عمليات إعادة بناء أو حزم توزيع)، وسطح الوكيل العكسي ضعيف بشكل متعمد لأن إجابة nginx للتعقيد غالبًا ما تكون "وضع أداة أخرى في المقدمة" (تحديد المعدل في nginx بالإضافة إلى WAF في طبقات فئة modsecurity).
- يبدأ عمل الأداء بالواقع بدلاً من طوائف البضائع: عامل_العمليات = تلقائي، واتصالات العامل بحجم الذاكرة ومغلف التحميل، وفهم proxy_buffering (التخزين المؤقت هو الإعداد الافتراضي والصحيح لمعظم واجهات برمجة التطبيقات أيضًا)، وgzip/brotli على أنواع النص، والسجلات التي تمت مراجعتها لارتفاعات 499/504 قبل رنين عتبة لوحة المعلومات.
ملاحظة ميدانية
كان تكوين nginx الذي علم العميل أكثر من غيره عبارة عن ملف واحد: وكيل عكسي مع HSTS، ورؤوس تخزين مؤقت صادقة، وكتل الخادم لكل خدمة، وكلها أقل من 200 سطر. كانت مجموعتهم السابقة تحتوي على 4000 سطر من التضمينات المكررة وإعادة التحميل التي أدت إلى كسر شيء ما كل ثلاثة أشهر. تعتبر البستنة التكوينية بمثابة هندسة.
أسئلة شائعة
nginx vs Apache: متى يكون nginx صحيحًا بشكل واضح؟
التفويض العكسي عالي التزامن، وحركة المرور الثابتة الكثيفة، وإنهاء TLS على نطاق واسع، تدفع حلقة الحدث هناك بالضبط. بالنسبة للاستضافة المشتركة التي تعتمد على htaccess مع التكوين لكل دليل، يظل Apache مريحًا (تغطي مقالة nginx-vs-Apache التجارة بأمانة).
ما هي قاعدة إعادة التحميل مقابل إعادة التشغيل؟
إعادة التحميل (ينتهي العمال القدامى الرشيقون من خدمة الاتصالات الحالية بينما يتولى التكوين الجديد المهمة) هو الإجراء اليومي؛ إعادة التشغيل مخصصة لتغييرات إصدار المحرك وأي شيء لم يتم اكتشافه عن طريق إعادة التحميل؛ ولا يحل أي منهما محل تشغيل nginx -t أولاً.
لماذا تضع بعض المواقع Apache خلف nginx؟
المكدس المختلط الكلاسيكي: ينهي nginx TLS، ويقدم الإحصائيات بسرعة، ويرسل الطلبات الديناميكية للوكلاء إلى Apache حيث تتوقع أدوات .htaccess وmod_php-class سلوكًا تقليديًا؛ تعد التكلفة جزءًا مؤثرًا آخر يجب مراقبته وتكوينه باستمرار.
ما هي أخطاء الضبط الثلاثة الأولى التي يجب تجنبها؟
مقابض عامل النسخ/المخزن المؤقت من منشورات المدونة دون اختبار التحميل، مع ترك proxy_buffering معطلاً بعد سماع أنه بطيء (التخزين المؤقت عادة ما يكون هو الإعداد الافتراضي الأسرع)، وتخطي اختبار التكوين قبل عمليات إعادة التحميل؛ يمكن الوقاية من الثلاثة جميعًا من خلال الانضباط أعلاه.
كيف تساعدك Kinetikatech في خوادم الويب والوكلاء العكسيين
هذا ما نقوم به كل يوم: البرامج التي تقبل الاتصالات وتقرر كيفية تدفق الطلبات: nginx وApache وLiteSpeed وCaddy وTraefik، بالإضافة إلى عادات التكوين التي تجعلها سريعة ومخزنة مؤقتًا ويصعب إزالتها. تغطي خدمة تحسين سرعة المواقع و إدارة الخوادم ذلك من البداية إلى النهاية: التقييم والتنفيذ والمراقبة على مدار الساعة والاستجابة للطوارئ خلال 30 دقيقة.