الوكلاء العكسيون أداة مفيدة في أي مجموعة أدوات لمسؤول النظام. لديهم الكثير من الاستخدامات ، بما في ذلك موازنة الحمل والحماية من هجمات DDOS
ما المقصود بالوكيل العكسي؟
الخادم الوكيل العادي ، المسمى بـ Forward Proxy ، هو خادم يتم من خلاله توجيه اتصال المستخدم. من نواحٍ عديدة ، يشبه الأمر شبكة افتراضية خاصة بسيطة تقع أمام اتصالك بالإنترنت. تعد الشبكات الافتراضية الخاصة مثالًا شائعًا على ذلك ، ولكنها تتضمن أيضًا أشياء مثل جدران الحماية المدرسية ، والتي قد تمنع الوصول إلى محتوى معين.
يعمل الوكيل العكسي بشكل مختلف قليلاً. إنها أداة خلفية يستخدمها مسؤولو النظام.بدلاً من الاتصال مباشرة بموقع ويب يقدم المحتوى ، يمكن لبروكسي عكسي مثل NGINX الجلوس في المنتصف. عندما يتلقى طلبًا من مستخدم ، فإنه سيرسل إعادة توجيه ، أو "وكيل" ، هذا الطلب إلى الخادم النهائي. يُطلق على هذا الخادم اسم "الخادم الأصلي" لأنه ما سيستجيب بالفعل للطلبات.

على الرغم من أن المستخدم سيعرف على الأرجح ما إذا كان يتم توجيهه عبر وكيل أمامي مثل VPN أو جدار ناري ، فإن الخوادم الوكيلة العكسية هي أدوات خلفية. بقدر ما يعرف المستخدم ، فإنهم يتصلون فقط بموقع ويب. كل شيء خلف الوكيل العكسي مخفي ، وهذا له فوائد عديدة أيضًا.
يحدث هذا التأثير أيضًا في الاتجاه المعاكس. لا يحتوي الخادم الأصلي على اتصال مباشر بالمستخدم ولن يرى سوى مجموعة من الطلبات الواردة من عنوان IP للخادم الوكيل العكسي. قد تكون هذه مشكلة ، ولكن معظم خدمات الوكيل مثل NGINX ستضيف رؤوس مثل
X-Forwarded-Forإلى الطلب.ستعلم هذه الرؤوس الخادم الأصلي بعنوان IP الفعلي للعميل.
ما هي الخوادم الوكيلة العكسية المستخدمة؟
الوكلاء العكسيون بسيطون جدًا من حيث المفهوم ولكن ثبت أنها أداة مفيدة بشكل مدهش مع العديد من حالات الاستخدام غير المتوقعة.
موازنة الحمل
إحدى الفوائد الرئيسية للوكيل العكسي هي مدى خفة وزنها. نظرًا لأنهم يقومون بإعادة توجيه الطلبات فقط ، فلن يضطروا إلى إجراء الكثير من المعالجة ، خاصة في المواقف التي تحتاج فيها قاعدة البيانات إلى الاستعلام.

هذا يعني أن عنق الزجاجة غالبًا ما يكون الخادم الأصلي ، ولكن مع وجود وكيل عكسي أمامه ، يمكنك بسهولة الحصول على خوادم أصل متعددة. على سبيل المثال ، يمكن أن يرسل الوكيل 50٪ من الطلبات إلى خادم واحد ، و 50٪ إلى خادم آخر ، مما يضاعف سعة موقع الويب. تم تصميم خدمات مثل HAProxy للتعامل مع هذا الأمر بشكل جيد.
هذه حالة استخدام شائعة جدًا ، وسيقدم معظم موفري السحابة مثل Amazon Web Services (AWS) موازنة الأحمال كخدمة ، مما يوفر عليك عناء إعدادها بنفسك. باستخدام أتمتة السحابة ، يمكنك أيضًا زيادة عدد الخوادم الأصلية تلقائيًا استجابة لحركة المرور ، وهي ميزة تسمى "التحجيم التلقائي".
يمكن إعداد موازين التحميل مثل Elastic Load Balancer من AWS لإعادة تكوين نفسها تلقائيًا عندما ترتفع الخوادم الأصلية لأعلى ولأسفل ، وكل ذلك أصبح ممكنًا بواسطة وكيل عكسي تحت الغطاء.
التخزين المؤقت
نظرًا لأن الوكيل العكسي غالبًا ما يكون أسرع في الاستجابة من الخادم الأصلي ، يتم استخدام تقنية تسمى التخزين المؤقت بشكل شائع لتسريع الطلبات على المسارات الشائعة. التخزين المؤقت هو عندما يتم تخزين بيانات الصفحة على الوكيل العكسي ، ويتم طلبها فقط من الخادم الأصلي مرة واحدة كل بضع ثوان / دقائق. هذا يقلل من الضغط على الخادم الأصلي بشكل كبير.
على سبيل المثال ، تم تقديم هذه المقالة التي تقرأها الآن بواسطة WordPress ، والتي تحتاج إلى التحدث إلى قاعدة بيانات SQL لجلب محتوى المقالة والبيانات الوصفية.يعد القيام بذلك مع كل تحديث للصفحة إهدارًا نظرًا لأن الصفحة لا تتغير حقًا. لذلك ، يمكن تخزين هذا المسار مؤقتًا ، وسيرسل الوكيل العكسي الرد الأخير إلى المستخدم التالي ، بدلاً من إزعاج WordPress مرة أخرى.
تسمى شبكة مخصصة من الوكلاء العكسيين الذين يخزنون المحتوى الخاص بك بشبكة توصيل المحتوى ، أو CDN. يتم استخدام شبكات CDN مثل CloudFlare أو Fastly بشكل شائع من قبل مواقع الويب الكبيرة لتسريع التسليم العالمي. تسمى الخوادم حول العالم التي تخزن المحتوى مؤقتًا "عقد الحافة" ، ويمكن أن يؤدي وجود الكثير منها إلى جعل موقع الويب الخاص بك سريعًا للغاية.
حماية الشبكة والخصوصية
نظرًا لأن المستخدم لا يعرف ما وراء الخادم الوكيل العكسي ، فلن يتمكن من مهاجمة خوادمك الأصلية بسهولة مباشرة. في الواقع ، تُستخدم الوكلاء العكسيون بشكل شائع مع الخوادم الأصلية في الشبكات الفرعية الخاصة ، مما يعني أنه ليس لديهم اتصالات واردة بالإنترنت الخارجية على الإطلاق.
يحافظ هذا على خصوصية تكوين الشبكة ، وبينما لا يكون الأمان من خلال الغموض مضمونًا أبدًا ، فهو أفضل من تركه مفتوحًا للهجوم.
يمكن أن تكون هذه الثقة المتأصلة مفيدة أيضًا عند التخطيط لشبكتك. على سبيل المثال ، يشبه خادم واجهة برمجة التطبيقات الذي يتحدث إلى قاعدة بيانات الخادم الوكيل العكسي. تعرف قاعدة البيانات أن بإمكانها الوثوق بخادم واجهة برمجة التطبيقات في الشبكة الفرعية الخاصة ، ويعمل خادم واجهة برمجة التطبيقات كجدار ناري لقاعدة البيانات ، ويسمح فقط بالاتصالات الصحيحة من خلالها.
الواجهة الأمامية القابلة للتكوين
تتمثل إحدى فوائد البروكسيات العكسية مثل NGINX في مدى قابليتها للتكوين بدرجة عالية. في كثير من الأحيان ، من المفيد أن تكون أمام الخدمات الأخرى فقط لتهيئة كيفية وصول المستخدمين إلى تلك الخدمات.
على سبيل المثال ، NGINX قادرة على تصنيف طلبات الحد إلى مسارات معينة ، والتي يمكن أن تمنع المسيئين من تقديم آلاف الطلبات إلى الخوادم الأصلية من IP واحد. هذا لا يوقف هجمات DDOS ، لكن من الجيد الحصول عليها.
NGINX قادر أيضًا على إعادة توجيه حركة المرور من أسماء نطاقات متعددة باستخدام كتل "خادم" قابلة للتكوين. على سبيل المثال ، يمكن أن ترسل الطلبات إلى
مثال.com
إلى خادمك الأصلي ، ولكن أرسل
api.example.com
إلى خادم واجهة برمجة التطبيقات الخاص بك ، أو
files.example.comلتخزين ملفاتك ، وما إلى ذلك. يمكن أن يكون لكل خادم تكوين وقواعد خاصة به.
NGINX قادر أيضًا على إضافة ميزات إضافية أعلى الخوادم الأصلية الحالية ، مثل شهادات HTTPS المركزية وتكوين الرأس.
في بعض الأحيان ، من المفيد أن يكون لديك NGINX على نفس الجهاز مثل خدمة محلية أخرى ، وذلك ببساطة لخدمة المحتوى من تلك الخدمة. على سبيل المثال ، تستخدم واجهات برمجة تطبيقات الويب ASP. NET خادم ويب داخليًا يسمى Kestrel ، وهو جيد في الاستجابة للطلبات ، ولكن ليس أكثر من ذلك. من الشائع جدًا تشغيل Kestrel على منفذ خاص واستخدام NGINX كوكيل عكسي قابل للتكوين.
التسجيل المركزي
هذا بسيط جدًا ، لكن وجود معظم حركة المرور الخاصة بك يمر عبر خدمة واحدة يجعل من السهل التحقق من السجلات. يحتوي سجل الوصول في NGINX على الكثير من المعلومات المفيدة حول حركة المرور الخاصة بك ، وعلى الرغم من أنه لا يتفوق على ميزات خدمة مثل Google Analytics ، إلا أنه من المعلومات الرائعة الحصول عليها.