برنامج تعليمي: إنشاء وتكوين بوابة تطبيق لاستضافة مواقع ويب متعددة باستخدام مدخل Microsoft Azure
يمكنك استخدام مدخل Microsoft Azure "لتكوين استضافة مواقع ويب متعددة" عند إنشاء "application gateway". في هذا البرنامج التعليمي، تقوم بتعريف مجموعات عناوين الواجهة الخلفية باستخدام الأجهزة الظاهرية. يمكنك بعد ذلك تكوين المستمعين والقواعد بناءً على مجالين للتأكد من وصول حركة مرور الويب إلى الخوادم المناسبة في المجمعات. يستخدم هذا البرنامج التعليمي أمثلة على www.contoso.com
و www.fabrikam.com
.
في هذا البرنامج التعليمي، تتعلم كيفية:
- إنشاء بوابة تطبيق
- إنشاء أجهزة ظاهرية للخوادم الخلفية
- إنشاء تجمعات الخلفية مع خوادم الواجهة الخلفية
- إنشاء أجهزة مستمعة
- إنشاء قواعد التوجيه
- تحرير ملف المضيفين لتحليل الاسم
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
إشعار
نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
المتطلبات الأساسية
- اشتراك Azure
تسجيل الدخول إلى Azure
قم بتسجيل الدخول إلى بوابة Azure.
إنشاء بوابة تطبيق
من قائمة مدخل Microsoft Azure، حدد + Create a resource>Networking>Application Gateway، أو ابحث عن Application Gateway في مربع البحث المدخل.
حدد إنشاء.
علامة تبويبBasics
في علامة التبويب Basics ، أدخل هذه القيم:
"Resource group": حدد "myResourceGroupAG" لمجموعة الموارد. إذا لم يكن موجوداً، فحدد "Create new" لإنشائه.
"Application gateway name": أدخل "myAppGateway" لاسم بوابة التطبيق.
لكي يتواصل Azure بين الموارد التي تنشئها، فإنه يحتاج إلى شبكة ظاهرية. يمكنك إما إنشاء شبكة ظاهرية جديدة أو استخدام شبكة موجودة. في هذا المثال، تنشئ شبكة ظاهرية جديدة في نفس الوقت الذي تنشئ فيه بوابة التطبيق. يتم إنشاء مثيلات بوابة التطبيق في شبكات فرعية منفصلة. تُنشئ شبكتين فرعيتين في هذا المثال: واحدة لـ application gateway، والأخرى للخوادم الخلفية.
ضمن Configure virtual network، حدد Create new لإنشاء شبكة افتراضية جديدة. في نافذة "Create virtual network" التي تفتح، أدخل القيم التالية لإنشاء شبكة افتراضية وشبكتين فرعيتين:
"Name": أدخل "myVNet" لاسم الشبكة الظاهرية.
اسم الشبكة الفرعية (الشبكة الفرعية لبوابة التطبيق): ستعرض شبكة الشبكات الفرعية شبكة فرعية تسمى Default. قم بتغيير اسم هذه الشبكة الفرعية إلى "myAGSubnet".
قد لا تحتوي الشبكة الفرعية لبوابة التطبيق إلا على بوابات تطبيق ما. لا يسمح بأي موارد أخرى. نطاق عنوان IP الافتراضي المتوفر هو 10.0.0.0/24.
حدد "OK" لإغلاق نافذة "Create virtual network" وحفظ إعدادات الشبكة الظاهرية.
في علامة التبويب الأساسيات، وافق على القيم الافتراضية للإعدادات الأخرى ثم حدد "Next: Frontends".
علامة تبويب الواجهات
في علامة التبويب Frontends، تحقق من تعيين Frontend IP address type إلى Public.
يمكنك تكوين IP للواجهة الأمامية ليكون عاماً أو خاصاً حسب حالة استخدامك. في هذا المثال، ستختار عنوان IP للواجهة الأمامية.إشعار
بالنسبة لبوابة التطبيق v2 SKU، يمكنك فقط اختيار تكوين IP للواجهة الأمامية العامة . استخدام تكوين عنوان IP للواجهة الأمامية الخاصة حاليا في المعاينة العامة. لمزيد من المعلومات، راجع نشر بوابة التطبيق الخاصة.
حدد "Add new" لـ عنوان IP العام وأدخل myAGPublicIPAddress لاسم عنوان IP العام، ثم حدد "OK".
حدد Next: Backends.
علامة تبويب "Backends"
يُستخدم التجمع الخلفي لتوجيه الطلبات إلى الخوادم الخلفية التي تخدم الطلب. يمكن أن تكون تجمعات الواجهة الخلفية بطاقات واجهة الشبكة ومجموعات مقياس الجهاز الظاهري وعناوين IP العامة وعناوين IP الداخلية وأسماء المجال المؤهلة بالكامل (FQDN) والخلفيات متعددة المستأجرين مثل Azure App Service. في هذا المثال، تنشئ تجمع واجهة خلفية فارغاً باستخدام بوابة تطبيقك وتضيف أهداف الواجهة الخلفية إلى تجمع الواجهة الخلفية.
في علامة التبويب Backends، حدد Add a backend pool.
في نافذة Add a backend pool التي تفتح، أدخِل القيم التالية لإنشاء تجمع خلفي فارغ:
- "Name": أدخل contosoPool لاسم تجمع الواجهة الخلفية.
- إضافة تجمع واجهة خلفية بدون أهداف: حدد "Yes" لإنشاء تجمع واجهة خلفية بدون أهداف. تضيف أهداف الواجهة الخلفية بعد إنشاء بوابة التطبيق.
في نافذة Add a backend pool حدد Add لحفظ تكوين التجمع الخلفي والعودة إلى علامة التبويب Backends.
أضف الآن مجموعة خلفية أخرى تسمى fabrikamPool بنفس الطريقة التي أضفت بها التجمع السابق.
حدد إضافة.
في علامة التبويب Backends حدد Next: Configuration.
علامة التبويب "التكوين"
في علامة التبويب "Configuration"، ستقوم بتوصيل مجموعات الواجهة الأمامية والخلفية التي أنشأتها باستخدام قاعدة التحويل.
حدد "Add a routing rule" من عمود "Routing rules".
في نافذة "Add a قاعدة التحويل" التي تفتح، أدخل contosoRule لـ "Rule name".
تتطلب قاعدة التوجيه وحدة إصغاء. من علامة التبويب "Listener" داخل نافذة "Add a routing rule"، أدخل القيم التالية لوحدة الإصغاء:
- اسم القاعدة: contosoRule.
- اسم المستمع: contosoListener.
- "Frontend IP": حدد Public لاختيار عنوان IP العام الذي أنشأته للواجهة الأمامية.
ضمن "Additional settings":
- "Listener type": مواقع متعددة
- اسم المضيف:
www.contoso.com
وافق على القيم الافتراضية للإعدادات الأخرى في علامة التبويب وحدة الإصغاء، ثم حدد علامة التبويب أهداف الواجهة الخلفية لتكوين بقية قاعدة التوجيه.
في علامة التبويب "Backend targets"، حدد contosoPool لـ "Backend target".
بالنسبة لإعداد الواجهة الخلفية، حدد إضافة جديد لإضافة إعداد خلفية جديد. سيحدد إعداد الواجهة الخلفية سلوك قاعدة التوجيه. في نافذة Add Backend setting التي تفتح، أدخل contosoSetting لاسم إعدادات الواجهة الخلفية و80 لمنفذ الواجهة الخلفية. اقبل القيم الافتراضية للإعدادات الأخرى في نافذة Add Backend setting ، ثم حدد Add للعودة إلى نافذة Add a routing rule .
من نافذة "Add a routing rule"، حدد "Add" لحفظ قاعدة التحويل والعودة إلى علامة التبويب "Configuration".
حدد إضافة قاعدة توجيه وأضف قاعدة مماثلة ومستمع وهدف الخلفية وإعداد الواجهة الخلفية ل Fabrikam.
حدد Next: Tags ثم Next: Review + create.
مراجعة + إنشاء علامة التبويب
راجع الإعدادات في علامة التبويب "Review + create"، ثم حدد "Create" لإنشاء الشبكة الظاهرية وعنوان IP العام وبوابة التطبيق. قد يستغرق الأمر عدة دقائق لـ Azure لإنشاء application gateway.
انتظر حتى ينتهي التوزيع بنجاح قبل الانتقال إلى القسم التالي.
إضافة أهداف الخلفية
في هذا المثال، ستستخدم الأجهزة الظاهرية كخلفية هدف. يمكنك إمّا استخدام الأجهزة الظاهرية الموجودة وإمّا إنشاء أجهزة جديدة. يمكنك إنشاء جهازين ظاهرين بحيث يتسنى لـ Azure استخدامهما كخوادم خلفية لبوابة التطبيق.
لإضافة أهداف خلفية، سوف تقوم بما يلي:
- إضافة شبكة فرعية خلفية.
- قم بإنشاء جهازين افتراضيين جديدين، contosoVM وfabrikamVM، لاستخدامهما كخوادم خلفية.
- تثبيت IIS على الأجهزة الظاهرية للتحقق من إنشاء application gateway بنجاح.
- أضف خوادم الواجهة الخلفية إلى تجمعات الواجهة الخلفية.
إضافة شبكة فرعية خلفية
- في مدخل Microsoft Azure، ابحث عن الشبكات الظاهرية وحدد *myVNet.
- ضمن Settings، اختر Subnets.
- حدد + الشبكة الفرعية وفي جزء إضافة شبكة فرعية، أدخل myBackendSubnet للاسم واقبل 10.0.1.0/24 كنطاق عنوان الشبكة الفرعية.
- اقبل جميع الإعدادات الافتراضية الأخرى وحدد حفظ.
إنشاء جهاز ظاهري
في مدخل Microsoft Azure، حدد "Create a resource". تظهر النافذة "New".
اختر Windows Server 2016 Datacenter في القائمة الشائعة. تظهر صفحة إنشاء جهاز ظاهري.
يمكن لـ Application Gateway توجيه حركة المرور إلى أي نوع من الأجهزة الافتراضية المستخدمة في مجموعة الواجهة الخلفية الخاصة بها. في هذا المثال، يمكنك استخدام Windows Server 2016 Datacenter.أدخل هذه القيم في علامة التبويب "Basics" لإعدادات الجهاز الظاهري التالية:
- Subscription: حدد اشتراكك.
- مجموعة الموارد: حدد "myResourceGroupAG" لاسم مجموعة الموارد.
- "Virtual machine name": أدخل contosoVM لاسم الجهاز الظاهري.
- "Region": حدد نفس المنطقة التي استخدمتها من قبل.
- "Username": أدخل اسماً لاسم مستخدم المسؤول.
- "Password": أدخل كلمة مرور للمسؤول.
وافق على الإعدادات الافتراضية الأخرى ثم حدد "Next: Disks".
اقبل الإعدادات الافتراضية لعلامة التبويب "Disks" ثم حدد "Next: Networking".
في علامة التبويب "Networking"، تحقق من تحديد myVNet لـ "Virtual network" وتعيين "Subnet" على myBackendSubnet. اقبل الإعدادات الافتراضية الأخرى ثم حدد "Next: Management".
يمكن لـ Application Gateway التواصل مع مثيلات خارج الشبكة الظاهرية الموجودة بها، ولكن عليك التأكد من وجود اتصال IP.في علامة التبويب "Management"، عيّن "Boot diagnostics" على "Disable". اقبل الإعدادات الافتراضية، ثم حدد Review + create.
في علامة التبويب Review + create راجع الإعدادات، وصحح أي أخطاء في التحقق من السلامة، ثم حدد Create.
انتظر حتى يتكمل إنشاء الجهاز الظاهري قبل المتابعة.
ثبِّت IIS للاختبار
في هذا المثال، تقوم بتثبيت IIS على الأجهزة الظاهرية فقط للتحقق من قيام Azure بإنشاء عبّارة التطبيق بنجاح.
افتح Azure PowerShell. للقيام بذلك، حدد "Cloud Shell" من شريط التنقل العلوي مدخل Microsoft Azure ثم حدد "PowerShell" من القائمة المنسدلة.
قم بتشغيل الأمر التالي لتثبيت IIS على الجهاز الظاهري، واستبدال منطقة مجموعة الموارد الخاصة بك للموقع<>:
Set-AzVMExtension ` -ResourceGroupName myResourceGroupAG ` -ExtensionName IIS ` -VMName contosoVM ` -Publisher Microsoft.Compute ` -ExtensionType CustomScriptExtension ` -TypeHandlerVersion 1.4 ` -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' ` -Location <location>
قم بإنشاء جهاز افتراضي ثانٍ وقم بتثبيت IIS باستخدام الخطوات التي أكملتها مسبقاً. استخدم fabrikamVM لاسم الجهاز الظاهري ولإعداد VMName للأمر cmdlet Set-AzVMExtension.
إضافة خوادم الخلفية إلى تجمعات الواجهة الخلفية
حدد "All resources"، ثم حدد myAppGateway.
حدد تجمعات الواجهة الخلفية من القائمة اليمنى.
حدد contosoPool.
من "Target type"، حدد "Virtual machine" من القائمة المنسدلة.
ضمن "Target"، حدد واجهة شبكة الجهاز الظاهري contosoVM من القائمة المنسدلة.
حدد حفظ.
كرر ذلك لإضافة fabrikamVM والواجهة إلى fabrikamPool.
انتظر حتى يكتمل التوزيع قبل المتابعة إلى الخطوة التالية.
قم بتحرير ملف المضيفين الخاص بك لتحليل الاسم
بعد إنشاء بوابة التطبيق بعنوان IP العام الخاص بها، يمكنك الحصول على عنوان IP واستخدامه لتحرير ملف المضيفين لحل www.contoso.com
و www.fabrikam.com
. في بيئة الإنتاج، يمكنك إنشاء CNAME
في DNS لتحليل الاسم.
حدد "All resources"، ثم حدد myAGPublicIPAddress.
انسخ عنوان IP واستخدمه كقيمة للإدخالات الجديدة في ملف
hosts
الخاص بك.على جهازك المحلي، افتح موجه أوامر إداري، وانتقل إلى
c:\Windows\System32\drivers\etc
.افتح ملف
hosts
، وأضف الإدخالات التالية، حيث يكونx.x.x.x
هو عنوان IP العام لبوابة التطبيق:# Copyright (c) 1993-2009 Microsoft Corp. # # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost x.x.x.x www.contoso.com x.x.x.x www.fabrikam.com
حفظ الملف.
قم بتشغيل الأوامر التالية لتحميل وعرض التغييرات على ملف المضيفين الخاص بك:
ipconfig/registerdns ipconfig/displaydns
اختبار بوابة التطبيق
اكتب اسم المجال في شريط العنوان في متصفحك. على سبيل المثال،
http://www.contoso.com
قم بتغيير العنوان إلى المجال الآخر وسترى شيئاً مثل المثال التالي:
تنظيف الموارد
عند عدم الحاجة إلى الموارد التي أنشأتها باستخدام بوابة التطبيق، احذف مجموعة الموارد. عند حذف مجموعة الموارد، فإنك تحذف أيضاً بوابة التطبيق وجميع الموارد ذات الصلة.
لإزالة مجموعة الموارد:
- في القائمة اليمنى مدخل Microsoft Azure، حدد "Resource groups".
- في صفحة مجموعات الموارد، ابحث عن myResourceGroup في القائمة، ثم حددها.
- في صفحة myResourceGroupAG ، حدد Delete resource group.
- أدخل myResourceGroupAG لـ TYPE THE RESOURCE GROUP NAME ثم حدد "Delete".
لاستعادة ملف المضيفين:
- احذف الأسطر
www.contoso.com
وwww.fabrikam.com
منhosts
الملف. - قم بتشغيل
ipconfig/registerdns
ومنipconfig/flushdns
موجه الأوامر.
الخطوات التالية
في هذا البرنامج التعليمي، سوف تتعلّم:
- إنشاء بوابة تطبيق مع وحدات الاستماع والقواعد استنادا إلى مجالين
- اختبار بوابة التطبيق بعد تحرير ملفات المضيف لخوادم الواجهة الخلفية
لمعرفة المزيد حول استضافة مواقع متعددة، راجع استضافة مواقع متعددة لبوابة التطبيق.
لمعرفة كيفية إنشاء بوابة تطبيق وتكوينها باستخدام قواعد التوجيه المستندة إلى المسار باستخدام مدخل Microsoft Azure، انتقل إلى البرنامج التعليمي التالي.