ما هو NGINX؟

NGINX (يُنطق "engine-x") هو خادم ويب عالي الأداء، ووكيل عكسي، وموازن تحميل يُستخدم من قبل ملايين المواقع حول العالم. تم إنشاؤه أصلاً لحل مشكلة C10K (معالجة أكثر من 10,000 اتصال متزامن)، وأصبح أحد أكثر خوادم الويب شهرة، حيث يُشغِّل تقريباً 30 % من جميع المواقع على الإنترنت.

يستخدم NGINX ملفات إعداد لتحديد كيفية معالجة الطلبات الواردة، وتوجيه المرور، وخدمة الملفات الثابتة، وإدارة شهادات SSL/TLS. تتبع هذه الملفات صياغة محددة تحتوي على توجيهات، كتل، وسياقات تتحكم في كل جانب من سلوك الخادم.

لماذا يهم تنسيق إعدادات NGINX؟

يمكن أن تصبح ملفات إعداد NGINX معقدة بسرعة مع توسّع البنية التحتية. قد يتضمن إعداد الإنتاج النموذجي عدة كتل server، توجيهات location، تعريفات upstream، وإعدادات SSL. بدون تنسيق مناسب:

  • تتدهور قابلية القراءة: تصبح الكتل المتداخلة صعبة المتابعة، ما يجعل فهم تدفق الطلبات أكثر صعوبة
  • تختفي الأخطاء: قد تُخفى الأخطاء في التوجيهات غير المتناسقة سلوكاً غير متوقعاً
  • تتفاقم صعوبة التعاون بين الفرق: يخلق اختلاف أساليب المطورين صراعات دمج وإرباكاً
  • يستغرق تصحيح الأخطاء وقتاً أطول: عندما يحدث عطل، تُبطئ الإعدادات غير المنسقة عملية التشخيص

يحوّل التنسيق المتسق ملفات الإعداد من عبء صيانة إلى وثيقة واضحة وسهلة الفحص لبنية الخادم الخاصة بك.

كيف يعمل تنسيق الإعدادات؟

يستخدم هذا المنسق تحليلًا ذكيًا لفهم بنية إعدادات NGINX. يحدد:

  1. التوجيهات: أوامر مثل listen، server_name، proxy_pass
  2. الكتل: سياقات محاطة بأقواس مثل server { }، location { }
  3. التعليقات: أسطر تبدأ بـ # توثق إعدادك
  4. المعلمات: القيم والوسائط التي تُمرَّر إلى التوجيهات

بعد ذلك يطبق المنسق مسافات بادئة متسقة، يضبط محاذاة التوجيهات ذات الصلة، ويقسم قوائم المعلمات الطويلة لتوفير أقصى قابلية للقراءة مع الحفاظ على المعنى الدقيق لإعدادك.

وصف الأداة

NGINX Config Formatter هي أداة على الإنترنت تقوم تلقائيًا بتنسيق وتجميل ملفات إعداد NGINX الخاصة بك. الصق إعدادك الفوضوي أو المضغوط، وستحصل فورًا على مخرجات نظيفة ومُنسَّقة وفقًا لأفضل ممارسات تنسيق إعدادات NGINX.

يعمل المنسق بالكامل داخل المتصفح باستخدام Prettier مع إضافة NGINX، مما يضمن أن إعدادات الخادم الحساسة لا تغادر جهازك أبدًا.

أمثلة

قبل التنسيق:

server {
listen 443 ssl; listen [::]:443 ssl;
server_name example.com;
location / { proxy_pass http://proxy; proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 1000; }
}

بعد التنسيق:

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name example.com;

    location / {
        proxy_pass         http://proxy;
        proxy_set_header   Host $http_host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_read_timeout 1000;
    }
}

الميزات

  • التنسيق في الوقت الحقيقي: شاهد النتائج فورًا أثناء كتابة أو لصق إعدادك
  • مسافات بادئة قابلة للتخصيص: اختر بين 2 أو 4 أو 8 مسافات، أو استخدم علامات التبويب
  • محاذاة التوجيهات: يمكن اختيار محاذاة قيم التوجيهات لتناسق بصري
  • تقسيم المعلمات: يُقسم القوائم الطويلة تلقائيًا وفق عرض السطر الذي تحدده
  • تمييز الصياغة: تمييز كامل لصياغة NGINX في كل من الإدخال والإخراج
  • معالجة على جانب العميل: لا يغادر إعدادك المتصفح مطلقًا لضمان الخصوصية الكاملة

حالات الاستخدام

  • تنظيف إعدادات قديمة: تنسيق ملفات الإعداد القديمة غير المتناسقة التي ورثتها من أعضاء فريق سابقين
  • تحضير مراجعة الكود: التأكد من أن إعدادات NGINX تتوافق مع معايير نمط الفريق قبل تقديمها للمراجعة
  • التوثيق والمشاركة: إنشاء مقتطفات إعداد قابلة للقراءة للتوثيق، أو الدروس، أو أسئلة Stack Overflow
  • مساعدة في تصحيح الأخطاء: تجعل الإعدادات المنسقة من السهل اكتشاف الأقواس المفقودة، أو التوجيهات غير في موضعها، أو الأخطاء المنطقية
  • تعلم NGINX: شاهد كيف يجب أن تبدو الإعدادات المنظمة بشكل صحيح أثناء دراسة أمثلة إعداد NGINX