كيف يمكنك الاستفادة من Nginx كوكيل عكسي

بخلاف Apache ، يعد Nginx خادم الويب الأكثر شعبية هناك. بالإضافة إلى كونه خادم ويب ، يمكن استخدامه أيضًا كموازن تحميل أو وكيل عكسي. سنشرح لك في هذا البرنامج التعليمي كيف يمكنك الاستفادة من Nginx كوكيل عكسي.

كيف يمكنك الاستفادة من Nginx كوكيل عكسي - شروحات

ما هو الوكيل العكسي؟

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

فوائد الوكيل العكسي

بناءً على طلبك ، قد يكون لديك حالات استخدام مختلفة للوكيل العكسي.

  1. يسمح لك الوكيل العكسي بتشغيل تطبيقات متعددة على نفس الخادم – إذا كان لديك العديد من التطبيقات التي تعمل على نفس الخادم ، فلا يمكن أن يستمع الجميع إلى المنفذ 80 أو 433 في نفس الوقت. باستخدام وكيل عكسي ، يمكنك تكوين الوكيل العكسي لإعادة توجيه حركة المرور إلى التطبيقات الفردية حسب الضرورة.
  2. Load Balancing – إذا كان لديك خوادم متعددة تشغل نفس التطبيق ، فيمكنك استخدام وكيل عكسي لتوزيع حركة المرور بالتساوي على كل خادم.
  3. جدار حماية تطبيق الويب – يمكنك استخدام وكيل عكسي لإخفاء التطبيق الخاص بك عن الجمهور وأيضًا تصفية IP غير المرغوب فيه أو الحماية من هجوم DDOS.
  4. تسجيل وتدقيق سهل – نظرًا لأن كل حركة المرور الواردة تتم إدارتها بواسطة الوكيل العكسي ، فمن الأسهل تسجيل ومراقبة تدفق حركة المرور.

كيف يمكنك الاستفادة من Nginx كوكيل عكسي - شروحات

تكوين Nginx كوكيل عكسي

لإعداد Nginx كوكيل عكسي ، سنستخدم المعلمة proxy_pass في ملفات تكوين Nginx.

ملاحظة: يفترض هذا البرنامج التعليمي أن لديك بعض المعرفة بـ Nginx وقمت بالفعل بتثبيت Nginx وإعداده في الخادم الخاص بك.

في معظم حالات الاستخدام ، سيكون Nginx هو الخادم الذي يواجه الواجهة الأمامية ، ويستمع إلى المنفذ 80 (HTTP) أو 443 (HTTPS) للطلبات الواردة. نظرًا لأنه لا يوجد سوى خدمة واحدة تستمع إلى المنفذ 80 أو 443 ، فسيتعين على التطبيق الخاص بك الاستماع على منفذ آخر ، مثل المنفذ 8081. سيكون التكوين الأسهل مثل هذا:

server {

  listen 80;

  listen [::]:80;


  server_name myapp.com;

  location / {

      proxy_pass http://localhost:8081/;

  }

}

هذا يعني أنه سيتم إعادة توجيه جميع الطلبات الواردة إلى myapp.com في المنفذ 80 إلى المنفذ 8081.

الإعدادات المتقدمة

بالإضافة إلى التوجيه proxy_pass ، هناك عدة توجيهات أخرى يمكنك استخدامها لإعداد أكثر تقدمًا.

proxy_set_header – يسمح لك هذا بتعيين الرأس لإرساله إلى تطبيق الخلفية. على سبيل المثال ، راجع التكوين التالي:

proxy_set_header        Host            $host;

proxy_set_header        X-Real-IP       $remote_addr;

proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

يمكنك تعيين رأس الوكيل اللازم لتمريره إلى التطبيق حتى يعرف عنوان IP للطلب والعنوان البعيد ، ثم يخرج المحتوى الصحيح لموقع الطلب.

proxy timeout – يسمح لك هذا بتعيين قيمة المهلة لإرسال وتلقي طلبات الوكيل. فمثلا:

proxy_connect_timeout   90;

proxy_send_timeout      90;

proxy_read_timeout      90;

proxy_buffers – يتيح هذا لـ Nginx تعليق استجابة الخادم الوكيل مؤقتًا وإرساله فقط إلى خادم الطلب بعد انتهاء الخادم الوكيل من الاستجابة. فمثلا:

proxy_buffers           32 4k;

إذا كان تطبيقك سيرسل جزءًا كبيرًا من الملف ، فقد تحتاج إلى تعطيل proxy_buffers:

proxy_buffering     off;

ملخص

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

المصدر
زر الذهاب إلى الأعلى