أهم 50 أسئلة وأجوبة لمقابلة Nginx (2026)

يتطلب التحضير لمقابلة عمل في مجال Nginx التخطيط المسبق والوضوح وفهم كيفية تقييم القائمين على المقابلات للمعرفة التشغيلية الفعلية في الوقت الحالي. تكشف أسئلة مقابلة Nginx عن عمق المعرفة، ومهارات اتخاذ القرار، والقدرة على حل المشكلات، والاستعداد للإنتاج.
تتيح هذه الأدوار مسارات وظيفية في مجالات البنية التحتية السحابية، وهندسة الأداء، والأمن، حيث تُعدّ التكوينات العملية ذات أهمية بالغة. ويُقدّر أصحاب العمل الخبرة التقنية، والمعرفة المتخصصة، والتحليلات المكتسبة من العمل الميداني، مما يُساعد في...ping يقوم الخريجون الجدد والمهندسون ذوو الخبرة المتوسطة وكبار المهنيين بتطبيق المهارات الأساسية والمتقدمة ضمن فرق العمل تحت إشراف المديرين وقادة الفرق. اقرأ أكثر…
👈 تحميل مجاني لملف PDF: أسئلة وأجوبة مقابلات Nginx
أهم أسئلة وأجوبة مقابلات Nginx
1) اشرح ما هو NGINX ولماذا يتم استخدامه على نطاق واسع في البنية التحتية للويب.
NGINX هو خادم ويب مفتوح المصدر عالي الأداء، يعمل أيضًا كخادم وكيل عكسي، وموازن أحمال، وذاكرة تخزين مؤقتة لبروتوكول HTTP. يدعم بروتوكولات HTTP وHTTPS وSMTP وPOP3 وIMAP. تعتمد بنيته على event-driven, asynchronous model يُمكّنه ذلك من التعامل مع عشرات الآلاف من الاتصالات المتزامنة مع استهلاك منخفض للذاكرة ووحدة المعالجة المركزية. هذه القابلية للتوسع تجعل NGINX مناسبًا بشكل خاص لتطبيقات الويب ذات حركة المرور العالية، والخدمات المصغرة، والبنى الموزعة. على سبيل المثال، غالبًا ما تُفضّل الشركات ذات أحمال العمل الكثيفة (مثل منصات المحتوى أو بوابات واجهة برمجة التطبيقات) استخدام NGINX للتعامل بكفاءة مع الاتصالات المتزامنة وتقديم المحتوى الثابت.
2) كيف يتعامل NGINX مع طلبات HTTP داخليًا (بنية تعتمد على الأحداث)؟
تكمن قوة NGINX الأساسية في event-driven, non-blocking architectureبدلاً من إنشاء عملية منفصلة لكل طلب (كما في الخوادم التقليدية)، يستخدم NGINX مجموعة صغيرة من عمليات العامل التي تعتمد على حلقات الأحداث غير المتزامنة. يستطيع كل عامل إدارة آلاف الاتصالات من خلال انتظار إشعارات جاهزية نظام التشغيل ومعالجة الأحداث عند حدوثها. ولأنه لا يتوقف عند عمليات الإدخال/الإخراج، يستطيع NGINX تقديم المحتوى الثابت والمُوَجَّه عبر وكيل بأقل قدر من الموارد. يُعد هذا النموذج مثاليًا لحالات الاستخدام التي تتطلب تزامنًا عاليًا، مما يجعله أكثر كفاءة من الخوادم القائمة على العمليات تحت الأحمال الثقيلة.
3) ما هي الاختلافات الرئيسية بين NGINX و Apache؟
على الرغم من أن كلاً من NGINX و Apache خوادم ويب شائعة، إلا أنها تختلف في البنية والأداء وأهداف التصميم:
| البعد | NGINX | Apache |
|---|---|---|
| نموذج التزامن | يعتمد على الأحداث (غير متزامن، غير مانع) | يعتمد على العمليات / الخيوط (الحظر) |
| استخدام الذاكرة | سعر منخفض لكل اتصال | أعلى لكل اتصال |
| أفضل حالة استخدام | حركة مرور عالية، محتوى ثابت، موازنة الأحمال | محتوى ديناميكي ونظام بيئي غني بالوحدات |
| التوسعة | يتوسع بموارد أقل | يتطلب ذلك المزيد من الأجهزة بسبب العمليات |
| التعامل مع الوحدات النمطية | الوحدات المختارة في وقت الترجمة | ديناميكي أثناء التشغيل |
يعمل تصميم NGINX على تحسين الأداء تحت الضغط، بينما يوفر Apache مرونة أكبر مع الوحدات النمطية الديناميكية ودعم واسع للغات.
4) ما هي المكونات الرئيسية لملف تكوين NGINX؟
ملف تكوين NGINX (المسار الافتراضي: /etc/nginx/nginx.conf) يتكون من كتل توجيهية منظمة تحدد كيفية تصرف NGINX:
- السياق الرئيسي: الإعدادات العامة مثل
worker_processes,error_logوpid - قسم الفعاليات: يدير اتصالات العمال والمعالجة المتعددة
- حظر HTTP: يحتوي على إعدادات لمعالجة HTTP (الضغط، التخزين المؤقت، gzip، إلخ).
- حظر الخادم: يُعرّف المضيفات الافتراضية (النطاقات والمنافذ)
- موقع الكتلة: يحدد قواعد التوجيه وكيفية التعامل مع عناوين URI المحددة.
تعمل هذه الكتل معًا لتوجيه الطلبات، وتحديد إعدادات الوكيل، وتكوين SSL/TLS والتخزين المؤقت.
5) كيف يمكنك إعادة تحميل إعدادات NGINX بأمان دون توقف الخدمة؟
لإعادة تحميل NGINX بالإعدادات المحدثة without interrupting active connections، يمكنك استخدام الأمر التالي:
nginx -s reload
أو على الأنظمة التي تستخدم systemd:
sudo systemctl reload nginx
يُشير هذا الأمر إلى العملية الرئيسية لإعادة قراءة ملفات التكوين وإعادة تشغيل العمال بسلاسة دون انقطاع.ping الاتصالات القائمة. إن معرفة كيفية إجراء عمليات إعادة التحميل السلسة هذه أمر ضروري في البيئات التي تتطلب توافرًا عاليًا.
6) صف كيفية إعداد NGINX كخادم وكيل عكسي.
يقوم الخادم الوكيل العكسي بتوجيه طلبات العميل إلى خوادم الواجهة الخلفية (مجموعة الخوادم المصدرية) ثم يُعيد الاستجابة. فيما يلي مثال على كتلة نموذجية للخادم الوكيل العكسي في NGINX:
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
}
}
}
يعمل هذا الإعداد على تحسين الأمان، ويوفر توزيع الحمل، ويتيح التخزين المؤقت أو سياسات تحديد المعدل بين العملاء وخوادم التطبيقات.
7) اشرح عمليات NGINX الرئيسية والعاملة.
في NGINX:
- استخدم العملية الرئيسية يدير التكوين، ويبدأ عمليات العامل، ويتعامل مع العمليات ذات الامتيازات مثل الربط بالمنافذ.
- عمليات العمال القيام بمعالجة الطلبات الفعلية - معالجة الاتصالات الواردة وتنفيذ القواعد المُكوّنة.
يُحسّن استخدام عدة عمال من التزامن، ويمكن ضبطه وفقًا لوحدات المعالجة المركزية المتاحة ومتطلبات حركة البيانات. كما يُحسّن تقسيم الأدوار الأداء والاستقرار.
8) كيف يمكنك تقييد معالجة أسماء الخوادم غير المحددة في NGINX؟
لرفض الطلبات التي لا تحتوي على بيانات صالحة Host رأس الصفحة في NGINX:
server {
listen 80;
server_name "";
return 444;
}
يُعيد هذا التكوين رمزًا 444، حالة NGINX غير قياسية تقوم بإغلاق الاتصال دون استجابة، مما يؤدي فعليًا إلى رفض المضيفين غير المحددين وتحسين الأمان.
9) ما هو الغرض من استخدام وحدة ngx_http_upstream_module؟
استخدم ngx_http_upstream_module يحدد groups of backend servers (المصادر الأولية) التي يمكن لـ NGINX تمرير الطلبات إليها باستخدام توجيهات مثل proxy_pass, fastcgi_pass أو uwsgi_passيُتيح ذلك مرونة في توسيع نطاق التطبيقات في بيئات مُوازنة الأحمال. فعند تجميع عدة خوادم خلفية، يستطيع NGINX توزيع حركة البيانات بناءً على سياسات مُحددة، مما يدعم التوزيع الدوري وغيره من الاستراتيجيات.
10) صف كيف يتم استخدام NGINX لتقديم المحتوى الثابت والديناميكي.
يتميز NGINX بكفاءة عالية في تقديم الخدمة ملفات ثابتة (HTML، CSS، الصور) مباشرةً باستخدام حلقة الأحداث المُحسّنة وآليات إدخال/إخراج الملفات. لـ محتوى ديناميكييقوم NGINX بتمرير الطلبات إلى معالجات الواجهة الخلفية مثل PHP-FPM، Python خوادم WSGI، أو أطر التطبيقات عبر آليات FastCGI/الوكيل. يُمكّن هذا الفصل NGINX من التفوق كخادم ملفات ثابت مع الاستفادة من خدمات الواجهة الخلفية للتوليد الديناميكي، مما يضمن الأداء الأمثل وقابلية التوسع.
11) كيف يعمل توازن الأحمال في NGINX، وما هي الطرق المختلفة المتاحة؟
يوفر NGINX أداءً قويًا تحميل موازنة من خلال upstream توجيهٌ يُوزّع حركة البيانات على عدة خوادم خلفية لتحسين الأداء وضمان التوافر العالي. وهو يدعم عدة طرق:
| الأسلوب | الوصف | أفضل حالة استخدام |
|---|---|---|
| جولة روبن | الطريقة الافتراضية التي تقوم بتدوير الطلبات بين الخوادم بالتسلسل. | توزيع متساوٍ لأعباء العمل. |
| أقل الاتصالات | يرسل الطلبات إلى الخادم الذي يحتوي على أقل عدد من الاتصالات النشطة. | جلسات طويلة الأمد. |
| تجزئة IP | يستخدم عنوان IP الخاص بالعميل لتحديد اختيار الخادم. | استمرار الجلسة. |
| أقل وقت | تعتمد الأرصدة على وقت الاستجابة وعدد الاتصالات. | التطبيقات الحساسة للتأخير. |
يمكن لـ NGINX أيضًا أن يقوم فحوصات طبية لإزالة الخوادم غير الصحية بشكل ديناميكي، مما يضمن تدفق حركة المرور بسلاسة ومرونة عالية.
12) ما الفرق بين NGINX مفتوح المصدر و NGINX Plus؟
NGINX مفتوحة المصدر هي النسخة المجتمعية التي توفر إمكانيات أساسية لخادم الويب، والوكيل، وموازنة الأحمال. إنجينكس بلس وهي النسخة التجارية التي توسع تلك الميزات بتحسينات على مستوى المؤسسات مثل المراقبة المتقدمة، واستمرارية الجلسة، وإعادة التكوين الديناميكي، وفحوصات الصحة النشطة.
| الميزات | NGINX مفتوح المصدر | إنجينكس بلس |
|---|---|---|
| تحميل موازنة | أساسي (التوزيع الدوري، تجزئة عنوان IP) | متقدم (أقل وقت، إعادة تكوين ديناميكي) |
| مراقبة | الأدوات اليدوية / الخارجية | لوحة تحكم مدمجة وواجهة برمجة تطبيقات |
| Caching | خفيف | مُحسّن بخاصية التحكم في التطهير |
| الدعم | المجتمع فقط | الدعم والتحديثات المؤسسية |
غالباً ما تختار المؤسسات التي لديها أحمال عمل بالغة الأهمية NGINX Plus لما يتميز به من موثوقية وقابلية مراقبة محسّنة.
13) كيف يتم تطبيق التخزين المؤقت في NGINX؟
تعمل خاصية التخزين المؤقت في NGINX على تحسين سرعة الاستجابة وتقليل الحمل على الخادم الخلفي من خلال تخزين المحتوى الذي يتم الوصول إليه بشكل متكرر محليًا. ويتم تفعيلها باستخدام proxy_cache توجيه. مثال على التكوين:
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=1g;
server {
location / {
proxy_cache my_cache;
proxy_pass http://backend;
}
}
يتم تقديم الاستجابات المخزنة مؤقتًا مباشرةً من القرص عند وصول طلب مطابق، تخطيping المعالجة الأولية. يمكنك التحكم في انتهاء صلاحية ذاكرة التخزين المؤقت باستخدام proxy_cache_valid واستبعاد عناوين URI محددة باستخدام proxy_no_cacheتُعد هذه الآلية بالغة الأهمية للبيئات ذات حركة المرور العالية مثل مواقع الأخبار أو مواقع التجارة الإلكترونية.
14) اشرح الغرض من استخدام توجيه "try_files".
استخدم try_files يتحقق التوجيه من وجود الملفات بترتيب محدد قبل تمرير الطلب إلى موقع النسخ الاحتياطي. ويُستخدم عادةً لـ توجيه المواقع الثابتة or تطبيقات الصفحة الواحدة (SPA).
على سبيل المثال:
location / {
try_files $uri $uri/ /index.html;
}
هنا، يتحقق NGINX أولاً مما إذا كان عنوان URI المطلوب يطابق ملفًا، ثم دليلًا، وأخيرًا يوجه الطلبات غير المطابقة إلى /index.html. هذا يحسن الكفاءة وتجربة المستخدم من خلال تقديم الملفات المخزنة مؤقتًا أو الثابتة مباشرة، وتجنب استدعاءات الواجهة الخلفية غير الضرورية.
15) كيف يمكن لـ NGINX التعامل مع إنهاء HTTPS و SSL/TLS؟
يعمل NGINX كوكيل إنهاء SSL/TLS، حيث يتولى تشفير وفك تشفير الطلبات على مستوى الخادم قبل إعادة توجيه الطلبات غير المشفرة إلى الخدمات المصدرية. مثال على التكوين:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/certs/example.crt;
ssl_certificate_key /etc/ssl/private/example.key;
location / {
proxy_pass http://backend;
}
}
وهو يدعم HTTP / 2, تدبيس OCSP, HSTSو مجموعات التشفير الحديثةمما يتيح اتصالات آمنة وعالية الأداء. ويؤدي إنهاء بروتوكول SSL في NGINX إلى تقليل عبء التشفير على خوادم الواجهة الخلفية وتبسيط إدارة الشهادات.
16) ما الفرق بين إعادة الكتابة وإعادة التوجيه في NGINX؟
يبلغ قطر كلاً من إعادة كتابة و إعادة توجيه تُعدّل هذه الطرق كيفية توجيه الطلبات، لكنها تختلف اختلافًا جوهريًا:
| البعد | كتابة | إعادة توجيه |
|---|---|---|
| النوع | داخلي URL إعادة كتابة | إعادة توجيه العميل الخارجي |
| استجابة Code | 200 (داخلي) | 301/302 (إعادة توجيه HTTP) |
| وضوح | شفاف للمستخدم | يرى العميل الجديد URL |
| الحلول المقترحة | كبار المسئولين الاقتصاديين ودية URLالتوجيه | نقل النطاق، وفرض استخدام بروتوكول HTTPS |
على سبيل المثال:
rewrite ^/oldpage$ /newpage permanent; # Redirect rewrite ^/img/(.*)$ /assets/$1 break; # Rewrite
يُعد فهم هذا التمييز أمرًا أساسيًا لتحسين محركات البحث ومنطق التوجيه بشكل فعال.
17) كيف تحمي NGINX من الثغرات الأمنية الشائعة؟
يتضمن تعزيز الأمن مزيجًا من أفضل الممارسات:
- تعطيل رموز الخادم:
server_tokens off; - طرق طلب الحد الأقصى: يُسمح فقط بـ GET و POST و HEAD.
- تقييد تجاوزات المخزن المؤقت: ضبط
client_max_body_sizeوclient_body_buffer_size. - استخدم بروتوكول HTTPS مع التشفيرات الحديثة.
- تمكين تحديد المعدل بواسطة
limit_req_zone. - إخفاء معلومات الإصدار وتعطيل عرض محتويات الدليل.
بالإضافة إلى ذلك ، باستخدام ملف جدار حماية تطبيق الويب (WAF) مثل ModSecurity with NGINX يمكن لـ NGINX تصفية حركة المرور الضارة. يُعد تحديث NGINX بانتظام وتطبيق التصحيحات الأمنية أمرًا ضروريًا لمنع استغلال الثغرات الأمنية غير المعروفة.
18) ما هي متغيرات NGINX، وكيف يتم استخدامها في التكوينات؟
تُخزّن متغيرات NGINX بيانات ديناميكية تُستخدم في عمليات التهيئة ومعالجة السجلات. ويمكنها تمثيل رؤوس الطلبات، أو عناوين IP الخاصة بالعملاء، أو القيم المحسوبة. ومن الأمثلة على ذلك: $remote_addr, $host, $uri, $request_methodو $upstream_addr.
على سبيل المثال:
log_format custom '$remote_addr - $host - $uri';
تُضيف المتغيرات مرونةً، مما يُتيح التوجيه المشروط والتسجيل المُخصص. كما يُمكنك تعريف متغيرات مُخصصة باستخدام set توجيه يساعد في تصميم التكوين المعياري.
19) كيف يمكنك إعداد تحديد معدل الطلبات في NGINX؟
يتحكم تحديد معدل الطلبات في عدد مرات إرسال المستخدمين للطلبات، مما يحمي من هجمات القوة الغاشمة وهجمات الحرمان من الخدمة الموزعة (DDoS). ويتم تكوينه باستخدام limit_req_zone التوجيه:
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
server {
location / {
limit_req zone=mylimit burst=5;
}
}
يسمح هذا النظام بطلب واحد في الثانية مع إمكانية إرسال خمسة طلبات متتالية. يقوم NGINX برفض الطلبات الزائدة أو تأخيرها بناءً على الإعدادات. يضمن تحديد معدل الطلبات استخدامًا عادلًا للموارد ويمنع تحميل الخادم فوق طاقته.
20) ما هي مزايا وعيوب استخدام NGINX كخادم وكيل عكسي؟
يوفر NGINX كخادم وكيل عكسي العديد من المزايا، ولكنه ينطوي أيضاً على بعض المقايضات:
| المزايا | عيوب |
|---|---|
| أداء عالٍ وقدرة على التعامل مع التزامن | يتطلب ضبطًا يدويًا لعمليات النشر واسعة النطاق. |
| إنهاء بروتوكول SSL والأمان المركزي | دعم محدود للوحدات النمطية الديناميكية (وقت الترجمة) |
| دعم موازنة الأحمال والتخزين المؤقت | إعدادات معقدة للمستخدمين الجدد |
| تصفية طبقة التطبيق | عدم وجود تنفيذ أصلي للمحتوى الديناميكي |
تتفوق مزاياه بكثير على القيود في معظم سيناريوهات المؤسسات، مما يجعل NGINX مكونًا لا غنى عنه في البنية التحتية الحديثة للويب.
21) كيف يمكنك مراقبة أداء وصحة NGINX في بيئة الإنتاج؟
تُعد مراقبة NGINX أمرًا بالغ الأهمية لتحديد الاختناقات والأعطال وسلوك حركة البيانات غير الطبيعي. ويمكن استخدام عدة طرق في هذا الصدد:
- وحدة الحالة المدمجة (
stub_status):يعرض الاتصالات النشطة، والطلبات التي تمت معالجتها، وحالات القراءة/الكتابة. مثال:
location /nginx_status { stub_status; allow 127.0.0.1; deny all; } - لوحة تحكم NGINX Plus: يوفر مقاييس في الوقت الفعلي عبر واجهة برمجة تطبيقات REST وواجهة المستخدم الرسومية.
- تكاملات الطرف الثالث: يمكن لأدوات مثل Prometheus و Grafana و Datadog أو ELK جمع المقاييس والسجلات.
- سجلات الوصول والأخطاء: يؤدي التدوير المنتظم للسجلات وتحليلها باستخدام أدوات مثل GoAccess أو AWStats إلى تحسين إمكانية المراقبة.
تساعد المراقبة على ضمان استمرارية التشغيل، والكشف السريع عن الأعطال، وتخطيط القدرات.
22) ما الفرق بين توجيهات proxy_pass و fastcgi_pass؟
كلا التوجيهين يوجهان الطلبات إلى خدمات الواجهة الخلفية، لكنهما مصممان لبروتوكولات مختلفة:
| التوجيه | الهدف | بروتوكول الواجهة الخلفية | مثال للاستخدام |
|---|---|---|---|
proxy_pass |
يقوم بإعادة توجيه طلبات HTTP أو HTTPS إلى خوادم الواجهة الخلفية | HTTP | Reverse توجيه واجهات برمجة تطبيقات الويب أو الخدمات المصغرة |
fastcgi_pass |
يرسل الطلبات إلى معالج FastCGI | FastCGI | PHP-FPM، Python تطبيقات FastCGI |
على سبيل المثال:
location /api/ {
proxy_pass http://backend;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
باختصار ، استخدم proxy_pass بالنسبة لخوادم HTTP الخلفية العامة و fastcgi_pass بالنسبة لبيئات تشغيل اللغات الديناميكية مثل PHP.
23) كيف يمكنك ضبط ضغط gzip في NGINX وما هي فوائده؟
يؤدي تمكين ضغط Gzip في NGINX إلى تقليل استخدام النطاق الترددي وتحسين وقت التحميل عن طريق ضغط الاستجابات النصية قبل إرسالها إلى العملاء.
تكوين المثال:
gzip on; gzip_types text/plain text/css application/json application/javascript; gzip_min_length 1024; gzip_comp_level 6; gzip_vary on;
الفوائد :
- يقلل من أحجام نقل الملفات بنسبة تصل إلى 70%.
- يحسّن وقت استجابة الخادم (TTFB) ونتائج أداء الصفحة.
- يوفر تكاليف النطاق الترددي، وهو أمر مفيد بشكل خاص لمستخدمي الهواتف المحمولة.
ومع ذلك، لا ينبغي تطبيق ذلك على الملفات المضغوطة بالفعل (مثلًا، .zip, .jpg, .png) لتجنب زيادة الحمل على وحدة المعالجة المركزية.
24) ما هي بعض أفضل الممارسات لضبط NGINX للتعامل مع حركة المرور العالية؟
يتضمن تحسين حركة المرور العالية ضبطًا دقيقًا للموارد ومعلمات التكوين:
| المساحة | التوجيه | الممارسات الموصى بها |
|---|---|---|
| العمال | worker_processes auto; |
مطابقة أنوية وحدة المعالجة المركزية |
| التواصل | worker_connections 4096; |
زيادة التزامن |
| حافظ على حياتك | keepalive_timeout 65; |
تحسين إعادة استخدام العميل |
| قم بتقديم Descriptأملاح الإماهة الفموية | OS ulimit -n |
رفع حدود المقابس المفتوحة |
| Caching | proxy_cache_path |
تقليل الحمل الخلفي |
| غزيب | gzip on; |
ضغط الردود النصية |
بالإضافة إلى ذلك ، باستخدام ملفات إدخال/إخراج القرص غير المتزامن, تحميل موازنةو الفحوصات الصحية الأولية يضمن الاستقرار والسرعة في ظل الطلبات المتزامنة الضخمة.
25) كيف يتعامل NGINX مع اتصالات WebSocket؟
تُمكّن تقنية WebSockets من الاتصال ثنائي الاتجاه بين العميل والخادم، وهو أمر بالغ الأهمية لتطبيقات الوقت الفعلي. يدعم NGINX هذه الميزة بشكل أصلي من خلال إعادة توجيه الرؤوس بشكل صحيح.
تكوين المثال:
location /ws/ {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
النقاط الرئيسية:
- استخدم
UpgradeوConnectionالعناوين إلزامية. - تأكد من أن NGINX يستخدم HTTP/1.1 للاتصالات TCP المستمرة.
- قد تتطلب موازنة الأحمال في تقنية WebSockets جلسات ثابتة باستخدام
ip_hash.
يدعم هذا التكوين تطبيقات مثل الدردشة، وتداول الأسهم، أو الألعاب.
26) ما هو الغرض من توجيه "worker_rlimit_nofile"؟
worker_rlimit_nofile يُحدد هذا الحد الأقصى لعدد مُعرّفات الملفات المفتوحة المتاحة لعمليات العامل. ويؤثر هذا الحد بشكل مباشر على عدد الاتصالات المتزامنة التي يمكن لـ NGINX معالجتها. مثال:
worker_rlimit_nofile 100000;
يُعد رفع هذا الحد أمرًا بالغ الأهمية للأنظمة ذات التزامن العالي (مثل بوابات واجهة برمجة التطبيقات أو منصات البث). ومع ذلك، فإن حد نظام التشغيل (ulimit -nيجب أيضًا زيادة ) لتتوافق مع هذه القيمة من أجل الاتساق.
27) كيف يمكن استخدام NGINX لـ URL هل تتم إعادة كتابة أو إعادة توجيه المستخدم إلى HTTPS تلقائيًا؟
يضمن تحويل HTTP إلى HTTPS اتصالاً آمناً. مثال:
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
يُصدر هذا التكوين إعادة التوجيه الدائم 301 من HTTP إلى HTTPS. وللحصول على تحكم أدق، يمكن لقواعد إعادة الكتابة فرض إعادة توجيه خاصة بالمسار:
rewrite ^/oldpath$ /newpath permanent;
يؤدي تطبيق بروتوكول HTTPS التلقائي إلى تحسين ترتيب محركات البحث، ومنع هجمات الوسيط، والحفاظ على تجربة مستخدم متسقة.
28) ما هي بعض الأسباب الشائعة لأخطاء "502 Bad Gateway" في NGINX؟
يشير الخطأ "502 Bad Gateway" إلى أن خادم NGINX، الذي يعمل كخادم وسيط، لم يتمكن من تلقي استجابة صحيحة من الخادم المصدر. ومن الأسباب الشائعة لذلك:
- تعطل خادم الواجهة الخلفية أو عدم توفره.
- غير صحيح
proxy_passURL أو مسار المقبس. - مهلة زمنية للمُرسِل (
proxy_read_timeout(منخفضة جدًا). - جدار الحماية أو نظام SELinux يحظر الاتصالات الواردة.
- معلمات FastCGI غير المهيأة بشكل صحيح (لـ PHP).
لتصحيح الأخطاء، تحقق من سجلات الأخطاء (/var/log/nginx/error.log)، والتحقق من إمكانية الوصول إلى المصدر، واختبار استجابات الواجهة الخلفية مباشرةً عبر curl.
29) كيف يدعم NGINX الخدمات المصغرة والبنى القائمة على الحاويات (مثل Docker و Kubernetes)؟
يُعد NGINX مثاليًا لـ بيئات الخدمات المصغرة بفضل تصميمه الخفيف ووظيفة الخادم الوكيل العكسي. في Docker أو Kubernetes، يعمل على النحو التالي:
- وحدة التحكم في الدخول: يدير حركة مرور HTTP/S الخارجية إلى الخدمات الداخلية.
- بوابة الخدمة: يقوم بتوجيه البيانات، وموازنة الأحمال، والمصادقة.
- وكيل سايدكار: يعزز المرونة وقابلية المراقبة في شبكات الخدمات (مثل Istio).
يمكن تحديث إعدادات NGINX ديناميكيًا عبر خرائط تكوين Kubernetes، مما يتيح التحكم المركزي في حركة البيانات وإدارة شهادات SSL. يتوافق نهجها المعياري تمامًا مع عمليات النشر المعتمدة على الحاويات والسحابة.
30) ما هي الطرق المختلفة لتحسين أمان NGINX لأنظمة الإنتاج؟
يتطلب تعزيز أمان NGINX تكوينًا متعدد الطبقات:
- تعزيز أمان بروتوكول SSL/TLS: استخدم التشفيرات الحديثة، وقم بتعطيل SSLv3/TLSv1.0.
- تحديد طرق HTTP: اسمح فقط بالأفعال الآمنة (GET، POST، HEAD).
- رؤوس الأمان:
add_header X-Frame-Options "DENY"; add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block";
- إخفاء معلومات الإصدار:
server_tokens off; - تفعيل تحديد معدل الطلبات وضوابط الوصول.
- قم بدمج جدار حماية تطبيقات الويب (WAF) أو Fail2Ban لمنع الهجمات العنيفة.
تؤدي هذه الإجراءات مجتمعة إلى إنشاء بيئة NGINX محصنة وعالية الجودة ومقاومة للثغرات الشائعة.
31) كيف يمكنك تصحيح أخطاء NGINX بفعالية؟
تتضمن عملية تصحيح أخطاء NGINX تحليلًا منهجيًا للسجلات وملفات التكوين وحالات العمليات. وتشمل الخطوات الرئيسية ما يلي:
- التحقق من بناء الجملة:
- يتحقق من صحة الإعدادات قبل إعادة التحميل.
- يوفر تشخيصات مفصلة أثناء التشغيل.
- اختبار الاتصال: استعمل
curl -vorwgetللتحقق من إمكانية الوصول إلى الواجهة الخلفية. - مراقبة الاتصالات النشطة: بواسطة
stub_statusornetstat.
nginx -t
تفعيل تسجيل التصحيح:
error_log /var/log/nginx/error.log debug;
تحليل سجلات الوصول: الكشف عن رموز الاستجابة وأنماط الطلبات باستخدام:
tail -f /var/log/nginx/access.log
يساعد فهم عمليات العامل في NGINX وحدود المخزن المؤقت والاستجابات الواردة في تحديد الاختناقات بسرعة في أنظمة الإنتاج.
32) كيف تقوم بتكوين تسجيل NGINX، وما هي تنسيقات السجلات المخصصة؟
يوفر NGINX آليات تسجيل مرنة من خلال access_log و error_log توجيهات.
تكوين المثال:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$request_time"';
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;
يمكنك تحديد تنسيقات مخصصة لتضمين مقاييس مثل $upstream_addr, $request_time أو $bytes_sent.
لتحقيق إمكانية مراقبة متقدمة، غالبًا ما يتم إرسال السجلات إلى ELK أو Loki أو Splunk لتحليل البيانات وعرضها في الوقت الفعلي.
33) ما هو دور توجيه proxy_buffering في NGINX؟
proxy_buffering يتحكم هذا الخيار فيما إذا كان NGINX يقوم بتخزين الاستجابات من الخوادم المصدرية مؤقتًا قبل إرسالها إلى العملاء.
| الضبط | الوصف | الحلول المقترحة |
|---|---|---|
proxy_buffering on; |
Bufferهذا هو الاستجابة الكاملة لتحقيق الإنتاجية المثلى | الوضع الافتراضي؛ يحسن الأداء |
proxy_buffering off; |
يبث البيانات مباشرة إلى العملاء دون تخزين مؤقت | البث المباشر أو واجهات برمجة التطبيقات |
على سبيل المثال، لتعطيل التخزين المؤقت:
location /stream/ {
proxy_buffering off;
}
يُعد تعطيل التخزين المؤقت مثاليًا لخدمات الدردشة أو البث المباشر، ولكنه قد يقلل من معدل نقل البيانات لحركة مرور الويب العادية.
34) اشرح كيف يمكن إبطال أو مسح ذاكرة التخزين المؤقت لـ NGINX.
لا يتضمن برنامج NGINX مفتوح المصدر خاصية مسح ذاكرة التخزين المؤقت المدمجة، ولكن يمكن تحقيق ذلك بعدة طرق:
- التنظيف اليدوي: قم بإزالة الملفات من دليل التخزين المؤقت.
rm -rf /var/cache/nginx/*
- وحدة خارجية: استعمل
ngx_cache_purgeللحذف عبر طلب HTTP:location ~ /purge(/.*) { proxy_cache_purge my_cache $host$1; } - ميزة NGINX Plus: يسمح بمسح ذاكرة التخزين المؤقت ديناميكيًا باستخدام واجهة برمجة التطبيقات (API).
تضمن عملية التطهير استبدال المحتوى القديم على الفور، مما يحافظ على نضارة المحتوى واتساقه عبر شبكات توصيل المحتوى أو عمليات النشر متعددة العقد.
35) كيف يتعامل NGINX مع مهلات الاتصال؟
يوفر NGINX العديد من توجيهات المهلة الزمنية للتحكم في المدة التي ينتظرها للحصول على استجابات من العميل أو المصدر:
| التوجيه | الهدف | الافتراضي (الافتراضيات) |
|---|---|---|
client_body_timeout |
وقت انتظار العميل | 60 |
client_header_timeout |
وقت انتظار رأس العميل | 60 |
keepalive_timeout |
اتصالات إبقاء الاتصال غير النشطة | 75 |
send_timeout |
حان وقت إرسال البيانات إلى العميل | 60 |
proxy_read_timeout |
وقت انتظار استجابة المصدر الرئيسي | 60 |
يؤدي الضبط السليم إلى تجنب الانقطاعات غير الضرورية ويضمن تجارب مستخدم أكثر سلاسة في ظل ظروف الشبكة المتغيرة.
36) كيف تقوم بتنفيذ عملية النشر الأزرق والأخضر باستخدام NGINX؟
في باقة نشر باللون الأزرق والأخضريتم تشغيل بيئتين (الأزرق = نشط، الأخضر = احتياطي) في وقت واحد. يعمل NGINX كموجه حركة مرور بينهما.
تكوين المثال:
upstream app_cluster {
server blue.example.com;
#server green.example.com; # Uncomment during switch
}
server {
location / {
proxy_pass http://app_cluster;
}
}
عند اختبار الإصدار الجديد (الأخضر) والتحقق منه، يتم تحويل حركة المرور عن طريق تحديث تعريف المصدر وإعادة تحميل NGINX (nginx -s reload).
تضمن هذه الطريقة صفر تعطل أثناء تحديثات التطبيق أو عمليات التراجع.
37) ما هو معدل الاندفاع المحدد، وكيف يحسن أداء NGINX؟
استخدم انفجار تسمح المعلمة في تحديد معدل المرور بمرور دفعات قصيرة من حركة المرور مؤقتًا دون رفض فوري.
على سبيل المثال:
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
location /api/ {
limit_req zone=mylimit burst=5 nodelay;
}
هنا، يتم قبول خمسة طلبات إضافية على الفور قبل تطبيق التقييد.
تعمل هذه التقنية على تخفيف حدة تدفقات حركة المرور، والحفاظ على تجربة مستخدم متسقة دون إرهاق أنظمة الواجهة الخلفية.
38) كيف يتعامل NGINX مع IPv6 وبيئات المكدس المزدوج؟
يدعم NGINX بروتوكول IPv6 بشكل كامل في كل من إعدادات الخادم وإعدادات المصدر. مثال:
server {
listen [::]:80 ipv6only=on;
server_name example.com;
}
يتم تحقيق دعم البروتوكول المزدوج (IPv4 + IPv6) من خلال تضمين كليهما:
listen 80; listen [::]:80;
يضمن التوافق مع بروتوكول IPv6 إمكانية الوصول على نطاق أوسع، خاصة للعملاء المتنقلين والدوليين، وهو أمر بالغ الأهمية للامتثال لمعايير الإنترنت الحديثة.
39) كيف تقوم بتكوين الجلسات الثابتة في موازنة الأحمال في NGINX؟
تضمن الجلسات الثابتة توجيه الطلبات من نفس العميل دائمًا إلى نفس خادم الواجهة الخلفية.
- باستخدام
ip_hash:upstream backend { ip_hash; server app1.example.com; server app2.example.com; } - ملف تعريف الارتباط اللاصق NGINX Plus:
استمرارية الجلسة المتقدمة مع ملفات تعريف الارتباط القابلة للتكوين.
تُعد الجلسات الثابتة ضرورية للتطبيقات التي تعتمد على الحالة مثل لوحات معلومات المستخدم أو المتجرping عربات التسوق، مما يضمن اتساق بيانات الجلسة دون الحاجة إلى تخزين مشترك.
40) ما هي مستويات التسجيل الرئيسية في NGINX، وكيف تختلف؟
يدعم NGINX مستويات تسجيل هرمية للتحكم في مستوى الإسهاب في سجل الأخطاء.
| مستوى | الوصف |
|---|---|
debug |
معلومات تفصيلية لحل المشكلات (مفصلة للغاية) |
info |
معلومات عامة عن وقت التشغيل |
notice |
أحداث هامة ولكنها غير حرجة |
warn |
المشاكل المحتملة أو الإعدادات الخاطئة |
error |
Operaأخطاء وطنية تتطلب الانتباه |
crit, alert, emerg |
الأعطال الحرجة وتنبيهات النظام |
تكوين المثال:
error_log /var/log/nginx/error.log warn;
يساعد ضبط مستويات التسجيل وفقًا للبيئة (التصحيح في بيئة الاختبار، والتحذير في بيئة الإنتاج) في الحفاظ على التوازن بين الرؤية والأداء.
41) كيف تقيس أداء NGINX؟
تتضمن عملية تقييم أداء NGINX قياس الإنتاجية، وزمن الاستجابة، والتزامن لتحديد نقاط الاختناق في الإعدادات. ومن الأدوات الشائعة ما يلي:
أباتشي بنش (ab):
ab -n 10000 -c 100 http://example.com/
- تتطلب الاختبارات حجمًا وتزامنًا.
- العمل: يوفر معلومات تفصيلية عن نسب زمن الاستجابة ومعدلات الطلبات.
- حصار / httperf: يحاكي حجم حركة المرور في العالم الحقيقي.
- جرافانا + بروميثيوس: يراقب مؤشرات الأداء المباشرة.
ينبغي أن تقيس عملية المقارنة المعيارية معايير مثل requests per second (RPS), time per requestو error rate.
ضبط المتغيرات مثل worker_processes, worker_connectionsو keepalive_timeout يحسن بشكل كبير من الإنتاجية الملحوظة.
42) كيف يمكن لـ NGINX أن يتكامل مع خطوط أنابيب CI/CD؟
يتكامل NGINX بسلاسة مع CI / CD للنشر الآلي والاختبار وإدارة التكوين. تشمل الأساليب الشائعة ما يلي:
- البنية التحتية كـ Code (IaC): إدارة التكوينات باستخدام مخططات Ansible أو Terraform أو Helm.
- حاويات عامل الميناء: قم ببناء ونشر صور NGINX باستخدام أدوات التكامل المستمر (Jenkins(GitLab CI، أو GitHub Actions).
- الاختبار الآلي: التحقق من صحة التكوينات باستخدام
nginx -tفي مراحل الإعداد. - أزرق مخضر / Canary أتمتة النشر: قم بتحديث الخوادم المصدرية بشكل ديناميكي أثناء عملية النشر.
مثال على مقتطف من GitLab CI:
deploy:
script:
- nginx -t
- systemctl reload nginx
يضمن النشر الآلي عمليات نشر NGINX متسقة، ومتحكم في إصداراتها، وموثوقة.
43) اشرح دور وحدة التحكم في الدخول NGINX في Kubernetes.
استخدم NGINX تحكم الدخول يدير حركة المرور الواردة إلى خدمات Kubernetes. يقوم بترجمة موارد Kubernetes Ingress إلى تكوينات NGINX بشكل ديناميكي.
المهام الرئيسية:
- يقوم بتوجيه طلبات HTTP/S إلى الخدمة الصحيحة.
- يوفر إنهاء SSL، وتحديد معدل نقل البيانات، و URL إعادة الكتابة.
- يدعم موازنة الأحمال بين وحدات التشغيل.
- يتيح إضافة تعليقات توضيحية للتحكم الدقيق (على سبيل المثال، rewrite-target، proxy-body-size).
مثال على ملف YAML الخاص بـ Ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web-ingress
annotations: nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web-service
port:
number: 80
تعمل هذه البنية على فصل منطق توجيه حركة المرور عن عمليات نشر الحاويات لتحقيق قابلية التوسع المرنة.
44) كيف يتعامل NGINX مع HTTP/2 وما هي مزاياه؟
يدعم NGINX بشكل كامل HTTP / 2، وهو خليفة HTTP/1.1، ويعمل على تحسين الكفاءة من خلال تعدد الإرسال وضغط الرأس.
لتفعيل بروتوكول HTTP/2:
server {
listen 443 ssl http2;
...
}
المزايا:
| الميزات | الوصف |
|---|---|
| مضاعفة | طلبات متعددة لكل اتصال TCP |
| ضغط الرأس (HPACK) | يقلل من استخدام النطاق الترددي |
| دفع الخادم | يرسل الأصول إلى العملاء بشكل استباقي |
| بروتوكول TLS أسرع | مصافحة آمنة ومبسطة |
يعمل بروتوكول HTTP/2 على تقليل زمن الاستجابة وأوقات تحميل الصفحات بشكل كبير، وخاصة بالنسبة لتطبيقات الويب الحديثة التي تحتوي على العديد من الأصول.
45) ما الفرق بين خاصية keepalive في المصدر وإعادة استخدام الاتصال في NGINX؟
إبقاء التيار مستمراً يحافظ على اتصالات مستمرة مع خوادم الواجهة الخلفية، مما يقلل من الحمل الزائد لعملية المصافحة عبر بروتوكول TCP. مثال:
upstream backend {
server app1.example.com;
keepalive 32;
}
فرق:
| البعد | حافظ على حياتك | إعادة استخدام الاتصال |
|---|---|---|
| مجال | بين NGINX والمصدر العلوي | بين NGINX والعملاء |
| الهدف | تحسين الواجهة الخلفية | أداء الواجهة الأمامية |
| الاعداد | keepalive في الداخل upstream |
keepalive_timeout in server منع |
كلا التقنيتين تقللان من زمن الاستجابة ولكنهما تخدمان طبقات اتصال مختلفة (جانب العميل مقابل جانب الخادم).
46) كيف يمكنك إعادة تكوين NGINX ديناميكيًا دون إعادة تشغيله؟
لتطبيق التكوينات الجديدة ديناميكيًا دون توقف، استخدم reload آلية:
nginx -t && nginx -s reload
هذا يشير إلى العملية الرئيسية لإنشاء عمال جدد بإعدادات محدثة مع إيقاف العمال القدامى بسلاسة.
في NGINX Plus، يمكن إجراء التغييرات عبر API (على سبيل المثال، إضافة خوادم المصدر بشكل ديناميكي):
curl --request POST \
--url http://localhost:8080/api/3/http/upstreams/backend/servers \
--header 'Content-Type: application/json' \
--data-raw '{"server":"10.0.0.12"}'
تدعم هذه الإمكانية عمليات النشر بدون توقف في مسارات DevOps الحديثة.
47) ما هي الاختلافات الرئيسية بين الوكيل العكسي والوكيل الأمامي في NGINX؟
| البعد | Reverse الوكيل | وكيل إعادة التوجيه |
|---|---|---|
| رؤية العميل | العملاء غير المدركين لخوادم الواجهة الخلفية | الخوادم غير مدركة لهوية العميل |
| الاستخدام الأساسي | موازنة الأحمال، والتخزين المؤقت، وإنهاء بروتوكول SSL | التصفية، إخفاء الهوية، التحكم في الوصول |
| حالة الاستخدام المشترك | توزيع حركة مرور الويب | تصفح خارجي آمن أو خاص بالشركات |
| دعم NGINX | محلي ويستخدم على نطاق واسع | يتطلب تكوين مخصص |
مثال (وكيل أمامي):
location / {
proxy_pass $scheme://$http_host$request_uri;
proxy_set_header Host $http_host;
}
Reverse لا تزال عملية التوكيل هي الحالة الاستخدامية السائدة، وخاصة بالنسبة لبوابات واجهة برمجة التطبيقات وهياكل الخدمات المصغرة.
48) كيف يمكن استخدام NGINX لتحديد معدل API والتحكم فيه؟
يحمي تحديد معدل الاستخدام واجهات برمجة التطبيقات من سوء الاستخدام ويضمن الاستخدام العادل. مثال على التكوين:
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;
server {
location /api/ {
limit_req zone=api_limit burst=20 nodelay;
proxy_pass http://backend;
}
}
آلية:
limit_req_zone: يحدد منطقة الذاكرة المشتركة ومعدلها.burst: يسمح بارتفاعات مؤقتة محدودة.nodelayيفرض الحدود فوراً.
يضمن هذا التكوين أن كل عنوان IP للعميل يمكنه إجراء 10 طلبات فقط في الثانية مع السماح بفترات قصيرة من الطلبات.
49) ما هي حالات الاستخدام النموذجية لـ NGINX في بيئات DevOps المؤسسية؟
في بيئات DevOps المؤسسية، يؤدي NGINX أدوارًا حاسمة متعددة:
- قاعدة بيانات للانترنت: توصيل المحتوى الثابت عالي الأداء.
- Reverse خادم وكيل / موازن الأحمال: إدارة حركة البيانات عبر الخدمات المصغرة.
- بوابة API: المصادقة والتوجيه والتحكم في معدل نقل البيانات.
- وحدة التحكم في الدخول: لمجموعات Kubernetes.
- طبقة تخزين المحتوى المؤقت: يقلل من الحمل على النظام الخلفي.
- نقطة إنهاء بروتوكول SSL: إدارة مركزية للشهادات.
- نقطة المراقبة النهائية: تكامل المقاييس وإمكانية المراقبة.
بفضل حجمه الصغير وتصميمه المعياري، يُعد NGINX لا غنى عنه في خطوط أنابيب التكامل المستمر/التسليم المستمر، والسحابات الهجينة، والمجموعات عالية التوافر.
50) ما هي الاختلافات الرئيسية بين NGINX و HAProxy فيما يتعلق بموازنة الأحمال؟
كلاهما موازنات أحمال عالية الأداء، لكنهما يختلفان في التركيز والبنية:
| الميزات | NGINX | HAProxy |
|---|---|---|
| دور أساسى | خادم الويب + خادم وكيل عكسي | موازن تحميل مخصص لبروتوكول TCP/HTTP |
| بساطة التكوين | أسهل لأحمال العمل المستندة إلى الويب | تحكم معقد ولكنه أكثر دقة |
| دعم الطبقة | الطبقة 7 (HTTP)، جزء من الطبقة 4 | L4 و L7 كاملان |
| إعادة التكوين الديناميكي | محدود (مفتوح المصدر) | تحديثات وقت التشغيل الأصلي |
| هاملت | ممتاز لأحمال العمل المختلطة | مثالي لموازنة الأحمال الخام |
| ميزات إضافية | التخزين المؤقت، والضغط، والمحتوى الثابت | الفحوصات الصحية، جداول لاصقة |
غالباً ما تقوم الشركات بدمج نفسها NGINX (الواجهة الأمامية) و HAProxy (الخادم الخلفي) لتحقيق التوجيه الأمثل وقابلية التوسع.
🔍 أهم أسئلة مقابلات العمل في مجال NGINX مع سيناريوهات واقعية وإجابات استراتيجية
1) ما هو NGINX، ولماذا يُستخدم بشكل شائع في بيئات الإنتاج؟
المتوقع من المرشح: يريد القائم بالمقابلة تقييم معرفتك الأساسية بـ NGINX وفهمك لقيمتها العملية في أنظمة العالم الحقيقي.
مثال للإجابة: "NGINX هو خادم ويب عالي الأداء وخادم وكيل عكسي معروف ببنيته القائمة على الأحداث. ويُستخدم بشكل شائع في بيئات الإنتاج لأنه يستطيع التعامل مع عدد كبير من الاتصالات المتزامنة بكفاءة مع استهلاك موارد نظام أقل من خوادم الويب التقليدية."
2) هل يمكنك شرح الفرق بين NGINX و Apache؟
المتوقع من المرشح: يقوم القائم بالمقابلة بتقييم قدرتك على مقارنة التقنيات واختيار الأداة المناسبة بناءً على حالات الاستخدام.
مثال للإجابة: يستخدم NGINX بنية غير متزامنة وغير حظرية، مما يجعله أكثر كفاءة في التعامل مع حركة المرور العالية والمحتوى الثابت. أما Apache فيستخدم نموذجًا قائمًا على العمليات، والذي يمكن أن يكون أكثر مرونة للتكوينات الديناميكية، ولكنه قد يستهلك المزيد من الموارد تحت ضغط عالٍ.
3) كيف يعمل NGINX كخادم وكيل عكسي؟
المتوقع من المرشح: يريد القائم بالمقابلة التأكد من فهمك لمفاهيم الخادم الوكيل العكسي وكيف يتناسب NGINX مع البنى الحديثة.
مثال للإجابة: "يعمل NGINX كخادم وكيل عكسي من خلال استقبال طلبات العميل وإعادة توجيهها إلى خوادم الواجهة الخلفية. ثم يعيد استجابات الخادم إلى العميل، مما يحسن الأمان وتوزيع الحمل والأداء العام."
4) صف موقفًا استخدمت فيه NGINX لموازنة الأحمال.
المتوقع من المرشح: يبحث القائم بالمقابلة عن خبرة عملية وقدرتك على تطبيق ميزات NGINX في سيناريوهات حقيقية.
مثال للإجابة: "في وظيفتي السابقة، قمت بتهيئة NGINX لتوزيع حركة المرور عبر خوادم تطبيقات متعددة باستخدام خوارزميات التوزيع الدوري وخوارزميات أقل عدد من الاتصالات. وقد حسّن هذا النهج من توافر التطبيقات ومنع أي خادم منفرد من أن يصبح عنق زجاجة."
5) كيف تتعامل مع إعدادات SSL و HTTPS في NGINX؟
المتوقع من المرشح: يرغب القائم بالمقابلة في تقييم فهمك لأفضل ممارسات الأمان وإدارة التكوين.
مثال للإجابة: "في وظيفة سابقة، قمتُ بتهيئة بروتوكول SSL عن طريق تثبيت الشهادات، وتفعيل مستمعي HTTPS، وفرض استخدام مجموعات تشفير قوية. كما قمتُ بتنفيذ إعادة توجيه HTTP إلى HTTPS لضمان اتصال آمن عبر جميع نقاط النهاية."
6) ما هي الخطوات التي ستتخذها لحل مشكلة خطأ 502 Bad Gateway في NGINX؟
المتوقع من المرشح: يقوم القائم بالمقابلة باختبار مهاراتك في حل المشكلات ومنهجية استكشاف الأخطاء وإصلاحها.
مثال للإجابة: "سأبدأ بفحص سجلات أخطاء NGINX لتحديد مشاكل الاتصال بالخادم الخلفي. ثم سأتحقق من تشغيل خوادم المصدر، وأتأكد من صحة إعدادات الوكيل، وأضمن ضبط مهلات الاتصال بشكل صحيح."
7) كيف يمكنك تحسين أداء NGINX للتطبيقات ذات حركة المرور العالية؟
المتوقع من المرشح: يريد القائم بالمقابلة معرفة كيف تتعامل مع تحسين الأداء وقابلية التوسع.
مثال للإجابة: "في وظيفتي السابقة، قمت بتحسين أداء NGINX من خلال تمكين ضغط gzip، وضبط عمليات العامل، وتكوين التخزين المؤقت للمحتوى الثابت. وقد أدت هذه التغييرات إلى تقليل أوقات الاستجابة وحمل الخادم بشكل كبير."
8) هل يمكنك شرح كيفية تعامل NGINX مع المحتوى الثابت مقابل المحتوى الديناميكي؟
المتوقع من المرشح: يقوم القائم بالمقابلة بتقييم فهمك لمعالجة الطلبات وتحسين الأداء.
مثال للإجابة: "يقدم NGINX المحتوى الثابت مباشرة وبكفاءة عالية من نظام الملفات. أما بالنسبة للمحتوى الديناميكي، فإنه يحيل الطلبات إلى خوادم التطبيقات أو الخدمات مثل PHP-FPM، مما يسمح لكل مكون بالتركيز على ما يجيده."
9) كيف تدير وتختبر تغييرات تكوين NGINX بأمان؟
المتوقع من المرشح: يريد القائم بالمقابلة أن يفهم نهجك في تحقيق الموثوقية وتقليل المخاطر.
مثال للإجابة: أقوم بالتحقق من صحة تغييرات التكوين باستخدام أمر اختبار تكوين NGINX قبل إعادة تحميل الخدمة. كما أقوم بتطبيق التغييرات أثناء فترات الصيانة وأراقب السجلات عن كثب بعد النشر.
10) صف موقفًا اضطررت فيه إلى حل مشكلة انقطاع الخدمة المتعلقة بـ NGINX بسرعة.
المتوقع من المرشح: يقوم القائم بالمقابلة بتقييم قدرتك على الأداء تحت الضغط والتواصل بفعالية أثناء الحوادث.
مثال للإجابة: "في وظيفتي السابقة، حدث انقطاع في الخدمة بسبب خلل في تكوين خدمة المصدر. قمت بسرعة بتحديد المشكلة من خلال السجلات، وقمت باستعادة التكوين السابق، وأبلغت أصحاب المصلحة بتحديثات الحالة حتى تم استعادة الخدمة بالكامل."
