إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يمكنك استخدام Azure PowerShell لتكوين إعادة توجيه حركة مرور الويب عند إنشاء بوابة تطبيق. في هذه المقالة، يمكنك تعريف مجموعة الخلفية باستخدام مجموعة مقياس الأجهزة الظاهرية. يمكنك بعد ذلك تكوين المستمعين والقواعد بناءً على المجالات التي تمتلكها للتأكد من وصول حركة مرور الويب إلى التجمع المناسب. تفترض هذه المقالة أنك تملك مجالات متعددة وتستخدم أمثلة على www.contoso.com www.contoso.org.
في هذه المقالة، ستتعرف على كيفية:
- إعداد الشبكة
- إنشاء بوابة تطبيق
- قم بإضافة وحدات الاستماع وقاعدة إعادة التوجيه
- إنشاء مقياس آلة افتراضي مع مجموعة الواجهة الخلفية
- إنشاء سجل CNAME في مجالك
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
إشعار
نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
Azure Cloud Shell
Azure يستضيف Azure Cloud Shell، بيئة تفاعلية يمكن استخدامها من خلال المستعرض. يمكنك استخدام Bash أو PowerShell مع Cloud Shell للعمل مع خدمات Azure. يمكنك استخدام أوامر Cloud Shell المثبتة مسبقًا لتشغيل التعليمات البرمجية في هذه المقالة دون الحاجة إلى تثبيت أي شيء على البيئة المحلية.
لبدء Azure Cloud Shell:
| خيار | مثال/ رابط |
|---|---|
| انقر فوق جربه في الزاوية العلوية اليسرى من التعليمة البرمجية أو كتلة الأمر. تحديد جربه لا يقوم بنسخ التعليمة البرمجية أو الأمر تلقائيًا إلى Cloud Shell. |
|
| انتقل إلى https://shell.azure.com، أو حدد زر تشغيل Cloud Shell لفتح Cloud Shell في المتصفح لديك. |
|
| حدد زر Cloud Shell على شريط القوائم في أعلى اليمين في مدخل Microsoft Azure. |
|
لاستخدام Azure Cloud Shell:
ابدأ تشغيل Cloud Shell.
حدد الزر نسخ على كتلة التعليمات البرمجية (أو كتلة الأوامر) لنسخ التعليمات البرمجية أو الأمر.
ألصق التعليمة البرمجية أو الأمر في جلسة Cloud Shell بتحديد Ctrl+Shift+Vعلى Windows وLunix، أو بتحديد Cmd+Shift+Vعلى macOS.
حدد Enter لتشغيل التعليمات البرمجية أو الأمر.
إذا اخترت تثبيت PowerShell واستخدامه محليًّا، فستتطلب هذه المقالة إصدار الوحدة النمطية Azure PowerShell 1.0.0 أو إصدارًا أحدث. للعثور على الإصدار، قم بتشغيل Get-Module -ListAvailable Az . إذا كنت بحاجة إلى الترقية، فراجع تثبيت الوحدة النمطية Azure PowerShell. في حالة تشغيل PowerShell محليًا، فأنت بحاجة أيضًا إلى تشغيل Login-AzAccount لإنشاء اتصال مع Azure.
إنشاء مجموعة موارد
وتُعد مجموعة الموارد عبارة عن حاوية منطقية يتم فيها توزيع موارد Azure وإدارتها. أنشئ مجموعة موارد Azure باستخدام New-AzResourceGroup.
New-AzResourceGroup -Name myResourceGroupAG -Location eastus
إنشاء موارد الشبكة
إنشاء تكوينات الشبكة الفرعية لـ myBackendSubnet وmyAGSubnet باستخدام New-AzVirtualNetworkSubnetConfig. إنشاء شبكة الاتصال الظاهرية myVNet باستخدام New-AzVirtualNetwork من خلال تكوينات الشبكة الفرعية. أنشئ عنوان IP عاماً باسم myPublicIPAddress باستخدام New-AzPublicIpAddress: تُستخدم هذه الموارد لتوفير اتصال الشبكة ببوابة التطبيق والموارد المرتبطة بها.
$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name myBackendSubnet `
-AddressPrefix 10.0.1.0/24
$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name myAGSubnet `
-AddressPrefix 10.0.2.0/24
$vnet = New-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Name myVNet `
-AddressPrefix 10.0.0.0/16 `
-Subnet $backendSubnetConfig, $agSubnetConfig
$pip = New-AzPublicIpAddress `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Name myAGPublicIPAddress `
-AllocationMethod Dynamic
إنشاء بوابة تطبيق
إنشاء تكوينات IP ومنفذ الواجهة الأمامية
قم بربط myAGSubnet الذي قمت بإنشائه مسبقا ببوابة التطبيق باستخدام New-AzApplicationGatewayIPConfiguration. قم بتعيين myAGPublicIPAddress إلى بوابة التطبيق باستخدام New-AzApplicationGatewayFrontendIPConfig. وبعد ذلك يمكنك إنشاء منفذ HTTP باستخدام New-AzApplicationGatewayFrontendPort.
$vnet = Get-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Name myVNet
$subnet=$vnet.Subnets[0]
$gipconfig = New-AzApplicationGatewayIPConfiguration `
-Name myAGIPConfig `
-Subnet $subnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig `
-Name myAGFrontendIPConfig `
-PublicIPAddress $pip
$frontendPort = New-AzApplicationGatewayFrontendPort `
-Name myFrontendPort `
-Port 80
إنشاء مجموعة الواجهة الخلفية والإعدادات
قم بإنشاء مجموعة الخلفية المسماة contosoPool لعبارة التطبيق باستخدام New-AzApplicationGatewayBackendAddressPool. قم تكوين إعدادات مجموعة الواجهة الخلفية باستخدام New-AzApplicationGatewayBackendHttpSettings.
$contosoPool = New-AzApplicationGatewayBackendAddressPool `
-Name contosoPool
$poolSettings = New-AzApplicationGatewayBackendHttpSettings `
-Name myPoolSettings `
-Port 80 `
-Protocol Http `
-CookieBasedAffinity Enabled `
-RequestTimeout 120
إنشاء وحدة الاستماع الأول والقاعدة
يلزم توفر وحدة استماع لتمكين بوابة التطبيق من توجيه حركة مرور الويب بشكل مناسب إلى مجموعة الواجهة الخلفية. في هذه المقالة، يمكنك إنشاء اثنين من وحدات الاستماع للمجاليك . في هذا المثال، يتم إنشاء وحدات استماع لمجالات www.contoso.com www.contoso.org.
قم بإنشاء وحدة الإصغاء الأولى المسماة contosoComListener باستخدامNew-AzApplicationGatewayHttpListener مع تكوين الواجهة الأمامية ومنفذ الواجهة الأمامية التي قمت بإنشائها مسبقا. يلزم وجود قاعدة لوحدة الاستماع لمعرفة أي مجموعة واجهة خلفية يستخدم لنسبة استخدام الشبكة الواردة. قم بإنشاء قاعدة أساسية تسمى contosoRule باستخدام New-AzApplicationGatewayRequestRoutingRule.
$contosoComlistener = New-AzApplicationGatewayHttpListener `
-Name contosoComListener `
-Protocol Http `
-FrontendIPConfiguration $fipconfig `
-FrontendPort $frontendPort `
-HostName "www.contoso.com"
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
-Name contosoComRule `
-RuleType Basic `
-HttpListener $contosoComListener `
-BackendAddressPool $contosoPool `
-BackendHttpSettings $poolSettings
أنشئ بوابة التطبيق
الآن بعد أن أنشأت موارد الدعم الضرورية، حدّد معلمات بوابة التطبيق المسماة myAppGateway باستخدام New-AzApplicationGatewaySku، ثم قم بإنشائها باستخدام New-AzApplicationGateway.
$sku = New-AzApplicationGatewaySku `
-Name Standard_Medium `
-Tier Standard `
-Capacity 2
$appgw = New-AzApplicationGateway `
-Name myAppGateway `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-BackendAddressPools $contosoPool `
-BackendHttpSettingsCollection $poolSettings `
-FrontendIpConfigurations $fipconfig `
-GatewayIpConfigurations $gipconfig `
-FrontendPorts $frontendPort `
-HttpListeners $contosoComListener `
-RequestRoutingRules $frontendRule `
-Sku $sku
قم بإضافة وحدة الاستماع الثانية
قم بإضافة وحدة الإصغاء المسماة contosoOrgListener المطلوب لإعادة توجيه حركة المرور باستخدام Add-AzApplicationGatewayHttpListener.
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
$frontendPort = Get-AzApplicationGatewayFrontendPort `
-Name myFrontendPort `
-ApplicationGateway $appgw
$ipconfig = Get-AzApplicationGatewayFrontendIPConfig `
-Name myAGFrontendIPConfig `
-ApplicationGateway $appgw
Add-AzApplicationGatewayHttpListener `
-ApplicationGateway $appgw `
-Name contosoOrgListener `
-Protocol Http `
-FrontendIPConfiguration $ipconfig `
-FrontendPort $frontendPort `
-HostName "www.contoso.org"
Set-AzApplicationGateway -ApplicationGateway $appgw
إضافة تكوين إعادة التوجيه
يمكنك تكوين إعادة توجيه وحدة الاستماع باستخدام Add-AzApplicationGatewayRedirectConfiguration.
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
$contosoComlistener = Get-AzApplicationGatewayHttpListener `
-Name contosoComListener `
-ApplicationGateway $appgw
$contosoOrglistener = Get-AzApplicationGatewayHttpListener `
-Name contosoOrgListener `
-ApplicationGateway $appgw
Add-AzApplicationGatewayRedirectConfiguration `
-ApplicationGateway $appgw `
-Name redirectOrgtoCom `
-RedirectType Found `
-TargetListener $contosoComListener `
-IncludePath $true `
-IncludeQueryString $true
Set-AzApplicationGateway -ApplicationGateway $appgw
قم بإضافة قاعدة التوجيه الثاني
يمكنك بعد ذلك إقران تكوين إعادة التوجيه إلى قاعدة جديدة تسمى contosoOrgRule باستخدام إضافة-AzApplicationGatewayRequestRoutingRule.
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
$contosoOrglistener = Get-AzApplicationGatewayHttpListener `
-Name contosoOrgListener `
-ApplicationGateway $appgw
$redirectConfig = Get-AzApplicationGatewayRedirectConfiguration `
-Name redirectOrgtoCom `
-ApplicationGateway $appgw
Add-AzApplicationGatewayRequestRoutingRule `
-ApplicationGateway $appgw `
-Name contosoOrgRule `
-RuleType Basic `
-HttpListener $contosoOrgListener `
-RedirectConfiguration $redirectConfig
Set-AzApplicationGateway -ApplicationGateway $appgw
إنشاء مجموعة تحجيم الجهاز الظاهري
في هذا المثال، تقوم بإنشاء مجموعة مقياس آلة افتراضية تدعم تجمع الواجهة الخلفية الذي قمت بإنشائه. مجموعة المقياس التي قمت بإنشائها تسمى myvmss وتحتوي على مثالين للجهاز الظاهري تقوم بتثبيت IIS عليهما. يمكنك تعيين المقياس لمجموعة الواجهة الخلفية عند تكوين إعدادات IP.
$vnet = Get-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Name myVNet
$appgw = Get-AzApplicationGateway `
-ResourceGroupName myResourceGroupAG `
-Name myAppGateway
$backendPool = Get-AzApplicationGatewayBackendAddressPool `
-Name contosoPool `
-ApplicationGateway $appgw
$ipConfig = New-AzVmssIpConfig `
-Name myVmssIPConfig `
-SubnetId $vnet.Subnets[1].Id `
-ApplicationGatewayBackendAddressPoolsId $backendPool.Id
$vmssConfig = New-AzVmssConfig `
-Location eastus `
-SkuCapacity 2 `
-SkuName Standard_DS2 `
-UpgradePolicyMode Automatic
Set-AzVmssStorageProfile $vmssConfig `
-ImageReferencePublisher MicrosoftWindowsServer `
-ImageReferenceOffer WindowsServer `
-ImageReferenceSku 2016-Datacenter `
-ImageReferenceVersion latest `
-OsDiskCreateOption FromImage
Set-AzVmssOsProfile $vmssConfig `
-AdminUsername azureuser `
-AdminPassword "Azure123456!" `
-ComputerNamePrefix myvmss
Add-AzVmssNetworkInterfaceConfiguration `
-VirtualMachineScaleSet $vmssConfig `
-Name myVmssNetConfig `
-Primary $true `
-IPConfiguration $ipConfig
New-AzVmss `
-ResourceGroupName myResourceGroupAG `
-Name myvmss `
-VirtualMachineScaleSet $vmssConfig
تثبيت IIS
$publicSettings = @{ "fileUris" = (,"https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/appgatewayurl.ps1");
"commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File appgatewayurl.ps1" }
$vmss = Get-AzVmss -ResourceGroupName myResourceGroupAG -VMScaleSetName myvmss
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
-Name "customScript" `
-Publisher "Microsoft.Compute" `
-Type "CustomScriptExtension" `
-TypeHandlerVersion 1.8 `
-Setting $publicSettings
Update-AzVmss `
-ResourceGroupName myResourceGroupAG `
-Name myvmss `
-VirtualMachineScaleSet $vmss
إنشاء سجل CNAME في مجالك
بعد إنشاء بوابة التطبيق بعنوان IP العام الخاص بها، يمكنك الحصول على عنوان DNS واستخدامه لإنشاء سجل CNAME في مجالك. استخدم Get-AzPublicIPAddress للحصول على عنوانDNS العام لبوابة التطبيق. انسخ قيمة fqdn لإعدادات DNS واستخدمها كقيمة لسجل CNAME الذي تنشئه. لا يوصى باستخدام سجلات A لأن VIP قد يتغير عند إعادة تشغيل بوابة التطبيق.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress
اختبار بوابة التطبيق
أدخل اسم مجالك في شريط العنوان في متصفحك. مثل،https://www.contoso.com.
قم بتغيير العنوان إلى مجالك الآخر، على سبيل المثال https://www.contoso.org ، ويجب أن ترى أنه تمت إعادة توجيه نسبة استخدام الشبكة مرة أخرى إلى وحدة الاستماع www.contoso.com.