بخلاف Apache، يعد Nginx هو خادم الويب الأكثر شعبية المتاح. بالإضافة إلى كونه خادم ويب، يمكن استخدامه أيضًا كموازن تحميل أو وكيل عكسي. في هذا البرنامج التعليمي، سيوضح لك موقع Quantrimang.com كيف يمكنك استخدام Nginx كوكيل عكسي.
ما هو الوكيل العكسي؟
يعمل الخادم الوكيل كوسيط بين العميل وخادم آخر. يقوم الخادم الوكيل باسترداد الموارد من الخادم الذي تريد الاتصال به ويرسلها إليك لعرضها. يعمل الوكيل العكسي بنفس الطريقة، باستثناء أن الأدوار معكوسة. عندما تطلب معلومات من الخادم، يحتفظ الوكيل العكسي بالطلب ويرسله إلى الخادم الخلفي المناسب. يتيح ذلك لمسؤولي النظام استخدام الخادم لتطبيقات متعددة، بالإضافة إلى ضمان تدفق أكثر سلاسة لحركة المرور بين العميل والخادم.

فوائد الوكلاء العكسيين
اعتمادًا على التطبيق الخاص بك، قد يكون لديك حالات مختلفة لاستخدام الوكيل العكسي.
- يسمح لك الوكيل العكسي بتشغيل تطبيقات متعددة على نفس الخادم - إذا كان لديك تطبيقات متعددة تعمل على نفس الخادم، فلن تتمكن جميعها من "الاستماع" في نفس الوقت على المنفذ 80 أو 433. باستخدام الوكيل العكسي، يمكنك تكوينه لإعادة توجيه حركة المرور إلى التطبيقات الفردية إذا لزم الأمر.
- موازنة التحميل - إذا كان لديك عدة خوادم تقوم بتشغيل نفس التطبيق، فيمكنك استخدام وكيل عكسي لتوزيع حركة المرور بالتساوي على كل خادم.
- جدار حماية تطبيق الويب - يمكنك استخدام الوكيل العكسي لإخفاء التطبيق الخاص بك وكذلك لتصفية عناوين IP غير المرغوب فيها أو الحماية من هجوم DDOS .
- سهولة التسجيل والتدقيق - بما أن كل حركة المرور الواردة تتم إدارتها بواسطة وكيل عكسي، فمن الأسهل تسجيل ومراقبة تدفقات حركة المرور.
قم بتكوين 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_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 (على https://nginx.org/en/docs/http/ngx_http_proxy_module.html) أو أمثلة التكوين (على https://www .nginx.com/resources/wiki /بدء/مواضيع/أمثلة/كامل/).
أتمنى أن تكون ناجحا.