كيفية عمل Azure Application Gateway

مكتمل

تحتوي بوابة تطبيق Azure على سلسلة من المكونات التي تدمج لتوجيه طلبات موازنة التحميل بأمان عبر مجموعة من خوادم الويب. تتضمن Application Gateway المكونات التالية:

Diagram that shows Azure Application Gateway components.

  • عنوان IP للواجهة الأمامية: يتم تلقي طلبات العميل من خلال عنوان IP للواجهة الأمامية. يمكنك تكوين بوابة التطبيق للحصول على عنوان IP عام أو عنوان IP خاص أو كليهما. لا يمكن أن يحتوي Application Gateway على أكثر من عنوان IP عام وعنوان IP خاص واحد.
  • المستمعون: تستخدم بوابة التطبيق وحدة استماع واحدة أو أكثر لتلقي الطلبات الواردة. توافق وحدات الاستماع على نسبة استخدام الشبكة التي تصل إلى تركيبة محددة من بروتوكول المنفذ، والمضيف، وعنوان IP. توجه كل وحدة استماع الطلبات إلى تجمع من الخوادم الخلفية التالية التي توجه القواعد التي تحددها. قد تكون وحدة الاستماع أساسية أو متعددة المواقع. يوجه المستمع الأساسي طلبا فقط استنادا إلى المسار في عنوان URL. يمكن لوحدة الاستماع متعددة المواقع أيضا توجيه الطلبات باستخدام عنصر اسم المضيف لعنصر URL. تعالج وحدات الاستماع أيضًا شهادات SSL\TLSلتأمين التطبيق الخاص بك بين المستخدم وبوابة التطبيق.
  • قواعد التوجيه: تربط قاعدة التوجيه وحدة استماع بتجمعات الواجهة الخلفية. تحدد القاعدة كيفية تفسير اسم المضيف وعناصر المسار في عنوان URL لطلب وتوجيه الطلب إلى تجمع النهاية الخلفية المناسب. كما تحتوي قاعدة التوجيه على مجموعة مقترنة من إعدادات HTTP. تشيرHTTP الإعدادات إلى ما إذا كان يتم تشفير (وكيفية) نسبة استخدام الشبكة بين بوابة الbackوApplication و الback-end servers. تتضمن معلومات التكوين الأخرى البروتوكول، والتصاق الجلسة، واستنزاف الاتصال، وفترة مهلة الطلب، والتحقيقات الصحية.

موازنة التحميل في بوابة التطبيق

تقوم بوابة التطبيق تلقائيا بموازنة الطلبات المرسلة إلى الخوادم في كل تجمع خلفي باستخدام آلية الترتيب الدوري. تعمل موازنة التحميل مع توجيه 7 لطبقة OSI الذي يُنفذ من خلال توجيه بوابة التطبيق، ما يعني أنه يقوم بتحميل طلبات الأرصدة استنادًا إلى معلمات التوجيه (أسماء المضيفين والمسارات) التي تستخدمها قواعد بوابة التطبيق. بالمقارنة، تعمل موازنات التحميل الأخرى، مثل Azure Load Balancer، على مستوى OSI Layer 4 وتوزع نسبة استخدام الشبكة بناءً على عنوان IP لهدف الطلب.

يمكنك تكوين ثبات الجلسة إذا كنت بحاجة إلى التأكد من أن جميع الطلبات الخاصة بعميل في نفس الجلسة يتم توجيهها إلى نفس الخادم في تجمع خلفي.

جدار حماية تطبيق الويب

جدار حماية تطبيق الويب هو مكون اختياري يعالج الطلبات الواردة قبل أن تصل إلى وحدة الاستماع. يتحقق جدار حماية تطبيق الويب من كل طلب للعديد من التهديدات الشائعة استنادا إلى مشروع أمان تطبيق ويب المفتوح (OWASP). تتضمن التهديدات الشائعة: حقن SQL، والبرمجة النصية عبر المواقع، وحقن الأوامر، وتهريب طلب HTTP، وتقسيم استجابة HTTP، وتضمين الملفات عن بعد، والروبوتات، ومتتبعات الارتباطات، والماسحات الضوئية، وانتهاكات بروتوكول HTTP والشذوذ.

يحدد OWASP مجموعة من القواعد العامة للكشف عن الهجمات. يُشار إلى تلك القواعد باسم مجموعة القواعد الأساسية (CRS). تخضع مجموعات القواعد للمراجعة المستمرة مع تطور الهجمات فيما يتعلق بالتعقيد. يدعم WAF أربع مجموعات من القواعد: CRS 3.2 و3.1 و3.0 و2.2.9. يعد CRS 3.1 هو القاعدة الافتراضية. إذا لزم الأمر، يمكنك تحديد قواعد محددة فقط في مجموعة قواعد، تستهدف تهديدات معينة. بالإضافة إلى ذلك، يمكنك تخصيص جدار الحماية لتحديد العناصر التي في الطلبات لفحصها، والحد من حجم الرسائل لمنع التحميلات الضخمة من سحق خوادمك.

التجمعات الخلفية

التجمع الخلفي هو مجموعة من خوادم الويب التي يمكن أن تتكون من: مجموعة ثابتة من الأجهزة الظاهرية، أو مجموعة مقياس الجهاز الظاهري، أو تطبيق تستضيفه Azure App Services، أو مجموعة من الخوادم المحلية.

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

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

إذا كنت تستخدم خدمة "Azure App Service" لاستضافة تطبيق الواجهة الخلفية، فإنك لن تحتاج إلى تثبيت أي شهادة في Application Gateway للاتصال بمجموعة الواجهة الخلفية. يتم تشفير جميع الاتصالات تلقائيًا. تثق بوابة التطبيق في الخوادم لأنها مُدارة من قِبل Azure.

تستخدم Application Gateway قاعدة لتحديد كيفية توجيه الرسائل التي تتلقاها على المنفذ الوارد الخاص بها إلى الخوادم الموجودة في مجموعة الواجهة الخلفية. إذا كانت الخوادم تستخدم TLS/SSL، فيجب عليك تكوين القاعدة للإشارة إلى:

  • أن الخوادم تتوقع نسبة استخدام الشبكة من خلال بروتوكول HTTPS.
  • ما الشهادة التي يلزم استخدامها لتشفير نسبة استخدام الشبكة ومصادقة الاتصال بأحد الخوادم.

توجيه Application Gateway

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

التوجيه المستند إلى المسار

يرسل التوجيه المستند إلى المسار طلبات ذات مسارات URL مختلفة لتجمعات متعددة من الخوادم الخلفية. على سبيل المثال، يمكنك توجيه طلبات مع المسار */video/ إلى تجمُّع خلفي يحتوي على خوادم معززة لمعالجة بث الفيديو وتوجيه طلبات */images/ إلى تجمُّع خوادم تتعامل مع استرداد الصور.

Diagram that depicts path-based routing in Azure Application Gateway.

التوجيه متعدد المواقع

يقوم التوجيه متعدد المواقع بتكوين أكثر من تطبيق ويب واحد على نفس مثيل Application Gateway. في تكوين متعدد المواقع، تقوم بتسجيل أسماء DNS متعددة (CNAMEs) لعنوان IP لبوابة التطبيق، مع تحديد اسم كل موقع. تُستخدم بوابة التطبيق وحدات استماع منفصلة لانتظار طلبات كل موقع. تعمل كل وحدة استماع على تمرير الطلب إلى قاعدة مختلفة، والتي يمكنها توجيه الطلبات إلى الخوادم في تجمع آخر في الطرف الخلفي. على سبيل المثال، يمكن توجيه جميع الطلبات لـ http://contoso.com للخوادم في تجمع خلفي واحد، وجميع الطلبات لـ http://fabrikam.com إلى تجمع خلفي آخر. يوضح الرسم التخطيطي التالي هذا التكوين:

Diagram that depicts multi-site routing in Azure Application Gateway.

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

يتضمن توجيه بوابة التطبيق أيضا هذه الميزات:

  • Redirection. يمكن استخدام إعادة التوجيه إلى موقع آخر، أو من HTTP إلى HTTPS.
  • إعادة كتابة عناوين HTTP. تتيح عناوين HTTP للعميل والserver تمرير معايير المعلومات مع الطلب أو الاستجابة.
  • pages الخطأ المخصصة. تتيح لك بوابة ال Application إنشاء صفحات الأخطاء المخصصة بدلاً من عرض صفحات الخطأ الافتراضية. يمكنك استخدام العلامة التجارية الخاصة بك والتخطيط باستخدام صفحة الأخطاء المُخصصة.

إنهاء TLS/SSL

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

إذا كنت بحاجة إلى تشفير شامل، يمكن ل Application Gateway فك تشفير نسبة استخدام الشبكة على البوابة باستخدام المفتاح الخاص بك، ثم إعادة التشفير مرة أخرى باستخدام المفتاح العام للخدمة قيد التشغيل في التجمع الخلفي.

تدخل نسبة استخدام الشبكة إلى البوابة عبر منفذ الواجهة الأمامية. يُمكنك فتح العديد من المنافذ، ويمكن أن تتلقى بوابة التطبيق الرسائل على أي من هذه المنافذ. تُعد وحدة الاستماع هي أول شيء تقابله نسبة استخدام الشبكة عند دخولها إلى المدخل عبر أحد المنافذ. تم إعداد وحدة الاستماع للاستماع إلى اسم مضيف معين، ومنفذ معين على عنوان IP محدد. يمكن لوحدة الاستماع استخدام شهادة TLS/SSL لفك تشفير نسبة استخدام الشبكة التي تدخل البوابة. ثم تستخدم وحدة الاستماع القاعدة التي تُحددها من أجل توجيه الطلبات الواردة نحو مجموعة الواجهة الخلفية.

Diagram that depicts TLS/SSL termination in Azure Application Gateway.

بالإضافة إلى ذلك، إن عرض موقع الويب أو تطبيق الويب الخاص بك عبر بوابة التطبيق يعني أنك لا تقوم بتوصيل خوادم بالويب مباشرةً. أنت تعرض فقط المنفذ 80 أو المنفذ 443 على بوابة التطبيق، والتي يتم إعادة توجيهها بعد ذلك إلى تجمع الخادم الخلفي. في هذا التكوين، لا يمكن الوصول إلى خوادم الويب الخاصة بك مباشرة من الإنترنت، مما يقلل من الأجزاء المعرضة للهجوم للبنية الأساسية الخاصة بك.

تحقيقات الصحة

تحدد تحقيقات صحة الخوادم المتوفرة لموازنة التحميل في تجمع خلفي. بوابة ال Application تستخدم التدقيق الصحيح لارسال الطلبات إلى الserver. عند إرجاع الخادم استجابة HTTP مع code حالة بين 200 و399، يعتبر ال server صحيحًا. إذا لم تقم بتكوين الفحوصات الصحية، تقوم بوابة التطبيق بإنشاء فحوصات افتراضية من الانتظار 30 ثانية قبل تقرير عدم توفر الخادم. تضمن تحقيقات السلامة عدم توجيه نسبة استخدام الشبكة إلى نقطة نهاية ويب غير مستجيبة أو فاشلة في تجمع النهاية الخلفية.

التحجيم التلقائي

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

نسبة استخدام شبكة بروتوكول HTTP/2 وبروتوكول WebSocket

يوفر بوابة التطبيق الدعم الأصلي للبروتوكولات WebSocket و HTTP/2. تتيح بروتوكولات WebSocket وHTTP/2 الاتصال المزدوج الكامل بين الخادم والعميل عبر اتصال TCP طويل المدى. هذا النوع من الاتصال أكثر تفاعلية بين خادم الويب والعميل، ويمكن أن يكون ثنائي الاتجاه دون الحاجة إلى الاستقصاء كما هو مطلوب في التطبيقات المستندة إلى HTTP. هذه البروتوكولات لها حمل منخفض (على عكس HTTP) ويمكن إعادة استخدام نفس اتصال TCP لطلب/استجابات متعددة مما يؤدي إلى استخدام موارد أكثر كفاءة. تم تصميم هذه البروتوكولات للعمل عبر منافذ الـ HTTP التقليدية من 80 و 443.