التشغيل السريع: توجيه نسبة استخدام شبكة الويب باستخدام Azure Application Gateway التي تستخدم Azure PowerShell

في هذا التشغيل السريع، يمكنك استخدام Azure PowerShell لإنشاء بوابة تطبيق. ثم يمكنك اختباره للتأكد من أنه يعمل بصورةٍ صحيحة.

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

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

يمكنك أيضاً إكمال هذا التشغيل السريع باستخدام Azure CLI أو مدخل Microsoft Azure.

إشعار

تدعم الواجهة الأمامية لبوابة التطبيق الآن عناوين IP مزدوجة المكدس (معاينة). يمكنك الآن إنشاء ما يصل إلى أربعة عناوين IP للواجهة الأمامية: عنوانان IPv4 (عام وخاصة) وعنوانين IPv6 (عام وخاصة).

المتطلبات الأساسية

Azure Cloud Shell

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

لبدء Azure Cloud Shell:

خيار مثال/ رابط
انقر فوق ⁧⁩جربه⁧⁩ في الزاوية العلوية اليسرى من التعليمة البرمجية أو كتلة الأمر. تحديد ⁧⁩جربه⁧⁩ لا يقوم بنسخ التعليمة البرمجية أو الأمر تلقائيًا إلى Cloud Shell. لقطة شاشة تعرض مثالاً على Try It for Azure Cloud Shell.
انتقل إلى ⁧⁩⁧ https://shell.azure.com⁩⁧⁩، أو حدد زر ⁩تشغيل Cloud Shell لفتح Cloud Shell في المتصفح لديك. زر لتشغيل Azure Cloud Shell.
حدد زر Cloud Shell على شريط القوائم في أعلى اليمين في مدخل Microsoft Azure. لقطة شاشة تعرض زر Cloud Shell في مدخل Microsoft Azure

لاستخدام Azure Cloud Shell:

  1. ابدأ تشغيل Cloud Shell.

  2. حدد الزر نسخ على كتلة التعليمات البرمجية (أو كتلة الأوامر) لنسخ التعليمات البرمجية أو الأمر.

  3. ألصق التعليمة البرمجية أو الأمر في جلسة Cloud Shell بتحديد Ctrl+Shift+Vعلى Windows وLunix، أو بتحديد Cmd+Shift+Vعلى macOS.

  4. حدد Enter لتشغيل التعليمات البرمجية أو الأمر.

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

قم بالاتصال بـ Azure

للاتصال مع Azure، شغِّلConnect-AzAccount.

إنشاء مجموعة موارد

في Azure، تقوم بتخصيص الموارد ذات الصلة لمجموعة موارد. يمكنك إمّا استخدام مجموعة موارد حالية وإمّا إنشاء مجموعة موارد جديدة.

لإنشاء مجموعة موارد جديدة، استخدم New-AzResourceGroup cmdlet:

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

إنشاء موارد الشبكة

لكي يتواصل Azure بين الموارد التي تنشئها، فإنه يحتاج إلى شبكة ظاهرية. قد لا تحتوي الشبكة الفرعية لبوابة التطبيق إلا على بوابات تطبيق ما. لا يسمح بأي موارد أخرى. يمكنك إما إنشاء شبكة فرعية جديدة لبوابة التطبيقات أو استخدام شبكة موجودة. تُنشئ شبكتين فرعيتين في هذا المثال: واحدة لـ application gateway، والأخرى للخوادم الخلفية. يمكنك تكوين عنوان IP للواجهة الأمامية لبوابة التطبيق ليكن عاماً أو خاصاً وفقاً لحالة الاستخدام. في هذا المثال، ستختار عنوان IP للواجهة الأمامية العامة.

  1. أنشئ تكوينات الشبكة الفرعية باستخدام New-AzVirtualNetworkSubnetConfig.
  2. أنشئ الشبكة الظاهرية باستخدام تكوينات الشبكة الفرعية باستخدام New-AzVirtualNetwork.
  3. أنشئ عنوان IP العام باستخدام New-AzPublicIpAddress.

إشعار

نُهج نقطة نهاية خدمة الشبكة الظاهرية غير مدعومة حالياً في الشبكة الفرعية لـ Application Gateway.

$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myAGSubnet `
  -AddressPrefix 10.21.0.0/24
$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.21.1.0/24
New-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myVNet `
  -AddressPrefix 10.21.0.0/16 `
  -Subnet $agSubnetConfig, $backendSubnetConfig
New-AzPublicIpAddress `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myAGPublicIPAddress `
  -AllocationMethod Static `
  -Sku Standard

إنشاء بوابة تطبيق

يتم استخدام Standard v2 SKU في هذا المثال.

إنشاء تكوينات IP ومنفذ الواجهة الأمامية

  1. استخدم New-AzApplicationGatewayIPConfiguration لإنشاء التكوين الذي يربط الشبكة الفرعية التي أنشأتها مع بوابة التطبيق.
  2. استخدم New-AzApplicationGatewayFrontendIPConfig لإنشاء التكوين الذي يعيّن عنوان IP العام الذي أنشأته مسبقاً لبوابة التطبيق.
  3. استخدم New-AzApplicationGatewayFrontendPort لتعيين المنفذ 80 للوصول إلى بوابة التطبيق.
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myAGSubnet
$pip    = Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress 
$gipconfig = New-AzApplicationGatewayIPConfiguration `
  -Name myAGIPConfig `
  -Subnet $subnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig `
  -Name myAGFrontendIPConfig `
  -PublicIPAddress $pip
$frontendport = New-AzApplicationGatewayFrontendPort `
  -Name myFrontendPort `
  -Port 80

إشعار

تدعم الواجهة الأمامية لبوابة التطبيق الآن عناوين IP مزدوجة المكدس (معاينة عامة). يمكنك الآن إنشاء ما يصل إلى أربعة عناوين IP للواجهة الأمامية: عنوانان IPv4 (عام وخاصة) وعنوانين IPv6 (عام وخاصة).

إنشاء تجمع الواجهة الخلفية

  1. استخدم New-AzApplicationGatewayBackendAddressPool لإنشاء تجمع الواجهة الخلفية لبوابة التطبيق. يتضمن تجمع الواجهة الخلفية قيمة فارغة حالياً. عند إنشاء واجهات شبكة لخادم الواجهة الخلفية في القسم التالي، ستضيفها إلى تجمع الواجهة الخلفية.
  2. كوِّن إعدادات تجمع الواجهة الخلفية باستخدام New-AzApplicationGatewayBackendHttpSetting.
$backendPool = New-AzApplicationGatewayBackendAddressPool `
  -Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
  -Name myPoolSettings `
  -Port 80 `
  -Protocol Http `
  -CookieBasedAffinity Enabled `
  -RequestTimeout 30

إنشاء وحدة إصغاء وإضافة قاعدة

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

  1. أنشئ وحدة إصغاء باستخدام New-AzApplicationGatewayHttpListener مع تكوين الواجهة الأمامية ومنفذها اللذين أنشأتهما مسبقاً.
  2. استخدم New-AzApplicationGatewayRequestRoutingRule لإنشاء قاعدة باسم rule1.
$defaultlistener = New-AzApplicationGatewayHttpListener `
  -Name myAGListener `
  -Protocol Http `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $frontendport
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
  -Name rule1 `
  -RuleType Basic `
  -Priority 100 `
  -HttpListener $defaultlistener `
  -BackendAddressPool $backendPool `
  -BackendHttpSettings $poolSettings

أنشئ بوابة التطبيق

بعد إنشاء الموارد الداعمة اللازمة، أنشئ بوابة التطبيق:

  1. استخدم New-AzApplicationGatewaySku لتحديد معلمات بوابة التطبيق.
  2. استخدم New-AzApplicationGateway لإنشاء بوابة التطبيق.
$sku = New-AzApplicationGatewaySku `
  -Name Standard_v2 `
  -Tier Standard_v2 `
  -Capacity 2
New-AzApplicationGateway `
  -Name myAppGateway `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -BackendAddressPools $backendPool `
  -BackendHttpSettingsCollection $poolSettings `
  -FrontendIpConfigurations $fipconfig `
  -GatewayIpConfigurations $gipconfig `
  -FrontendPorts $frontendport `
  -HttpListeners $defaultlistener `
  -RequestRoutingRules $frontendRule `
  -Sku $sku

تلميح

يمكنك تعديل قيم Name المعلمات و Tier لاستخدام SKU مختلف. على سبيل المثال: Basic.

خوادم الواجهة الخلفية

بعد إنشاء بوابة التطبيقات، أنشئ الأجهزة الافتراضية للواجهة الخلفية التي ستستضيف مواقع الويب. يمكن أن تتكون الواجهة الخلفية من NICs ومجموعات مقياس الجهاز الظاهري وعنوان IP العام وعنوان IP الداخلي وأسماء المجال المؤهلة بالكامل (FQDN) والخلفيات متعددة المستأجرين مثل Azure App Service.

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

إنشاء جهازين ظاهريين

  1. احصل على تكوين تجمع الواجهة الخلفية لبوابة التطبيق الذي تم إنشاؤه مؤخراً باستخدام Get-AzApplicationGatewayBackendAddressPool.
  2. أنشئ واجهة شبكة باستخدام New-AzNetworkInterface.
  3. أنشئ تكوين أجهزة ظاهرية باستخدام New-AzVMConfig.
  4. أنشئ الجهاز الظاهري باستخدام New-AzVM.

عند تشغيل نموذج التعليمة البرمجية التالي لإنشاء الأجهزة الظاهرية، يطالبك Azure ببيانات الاعتماد. أدخل اسم مستخدم وكلمة مرور:

$appgw = Get-AzApplicationGateway -ResourceGroupName myResourceGroupAG -Name myAppGateway
$backendPool = Get-AzApplicationGatewayBackendAddressPool -Name myAGBackendPool -ApplicationGateway $appgw
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myBackendSubnet
$cred = Get-Credential
for ($i=1; $i -le 2; $i++)
{
  $nic = New-AzNetworkInterface `
    -Name myNic$i `
    -ResourceGroupName myResourceGroupAG `
    -Location EastUS `
    -Subnet $subnet `
    -ApplicationGatewayBackendAddressPool $backendpool
  $vm = New-AzVMConfig `
    -VMName myVM$i `
    -VMSize Standard_DS2_v2
  Set-AzVMOperatingSystem `
    -VM $vm `
    -Windows `
    -ComputerName myVM$i `
    -Credential $cred
  Set-AzVMSourceImage `
    -VM $vm `
    -PublisherName MicrosoftWindowsServer `
    -Offer WindowsServer `
    -Skus 2016-Datacenter `
    -Version latest
  Add-AzVMNetworkInterface `
    -VM $vm `
    -Id $nic.Id
  Set-AzVMBootDiagnostic `
    -VM $vm `
    -Disable
  New-AzVM -ResourceGroupName myResourceGroupAG -Location EastUS -VM $vm
  Set-AzVMExtension `
    -ResourceGroupName myResourceGroupAG `
    -ExtensionName IIS `
    -VMName myVM$i `
    -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 EastUS
}

اختبار بوابة التطبيق

على الرغم من أن IIS غير مطلوب لإنشاء بوابة التطبيق، يمكنك تثبيته في هذا التشغيل السريع للتحقق مما إذا كان Azure قد أنشأ بوابة التطبيق بنجاح.

استخدم IIS لاختبار application gateway:

  1. شغِّل Get-AzPublicIPAddress للحصول على عنوان IP العام لبوابة التطبيق.
  2. انسخ والصق عنوان IP العام في شريط العنوان في متصفحك. عند تحديث المستعرض، يجب أن تشاهد اسم الجهاز الظاهري. تتحقق الاستجابة الصالحة من إنشاء بوابة التطبيق بنجاح ويمكنها إجراء اتصال ناجح بالواجهة الخلفية.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress

اختبار بوابة التطبيق

تنظيف الموارد

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

لحذف مجموعة الموارد، اتصل بـ Remove-AzResourceGroup cmdlet:

Remove-AzResourceGroup -Name myResourceGroupAG

الخطوات التالية