مشاركة عبر


البرنامج التعليمي: إنشاء بوابة تطبيق تحسن الوصول إلى تطبيق الويب

إذا كنت مسؤول تكنولوجيا المعلومات يهدف إلى تحسين الوصول إلى تطبيق الويب، فيمكنك تحسين بوابة التطبيق الخاصة بك للتوسع ديناميكيا بناء على طلب العميل وتوسيع مناطق توفر متعددة. يساعدك هذا البرنامج التعليمي على تكوين ميزات Azure Application Gateway v2 الرئيسية، بما في ذلك التحجيم التلقائي وتكرار المنطقة وكبار الشخصيات الثابتة، لتحقيق هذه التحسينات. ستستخدم Azure PowerShell cmdlets ونموذج توزيع Azure Resource Manager لحل المشكلة.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • إنشاء شهادة موقَّعة ذاتيًا
  • إنشاء شبكة ظاهرية ذات مقياس تلقائي
  • إنشاء IP عام محجوز
  • إعداد البنية الأساسية لبوابة التطبيق
  • تحديد التحجيم التلقائي
  • أنشئ بوابة التطبيق
  • اختبار بوابة التطبيق

في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.

لمزيد من المعلومات حول دعم منطقة التوفر في Application Gateway v2، راجع الموثوقية ل Application Gateway v2.

Prerequisites

Note

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

يتطلب هذا البرنامج التعليمي تشغيل جلسة Azure PowerShell إدارية محليا. يجب أن يكون لديك إصدار الوحدة النمطية Azure PowerShell 1.0.0 أو أحدث مثبتا. قم بتشغيل Get-Module -ListAvailable Az للعثور على الإصدار. إذا كنت بحاجة إلى الترقية، فراجع تثبيت الوحدة النمطية Azure PowerShell. بعد التحقق من إصدار PowerShell، قم بتشغيل Connect-AzAccount لإنشاء اتصال مع Azure.

تسجيل الدخول إلى Azure

Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"

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

إنشاء مجموعة موارد في أحد المواقع المتوفرة.

$location = "East US 2"
$rg = "AppGW-rg"

#Create a new Resource Group
New-AzResourceGroup -Name $rg -Location $location

إنشاء شهادة موقَّعة ذاتيًا

لاستخدامات الإنتاج، يجب عليك استيراد شهادة صالحة موقعة من موفر موثوق. بالنسبة لهذا البرنامج التعليمي، يمكنك إنشاء شهادة موقعة ذاتيا باستخدام New-SelfSignedCertificate. يمكنك استخدام Export-PfxCertificate مع بصمة الإبهام التي تم إرجاعها لتصدير ملف pfx من الشهادة.

New-SelfSignedCertificate `
  -certstorelocation cert:\localmachine\my `
  -dnsname www.contoso.com

يجب أن ترى شيئا مثل هذه النتيجة:

PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\my

Thumbprint                                Subject
----------                                -------
E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630  CN=www.contoso.com

استخدم بصمة الإبهام لإنشاء ملف pfx. استبدل <كلمة المرور> بكلمة مرور من اختيارك:

$pwd = ConvertTo-SecureString -String "<password>" -Force -AsPlainText

Export-PfxCertificate `
  -cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
  -FilePath c:\appgwcert.pfx `
  -Password $pwd

إنشاء شبكة ظاهرية

إنشاء شبكة ظاهرية مع شبكة فرعية واحدة مخصصة لبوابة تطبيق التحجيم التلقائي. حاليا يمكن نشر بوابة تطبيق مقياس تلقائي واحدة فقط في كل شبكة فرعية مخصصة.

#Create VNet with two subnets
$sub1 = New-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -AddressPrefix "10.0.0.0/24"
$sub2 = New-AzVirtualNetworkSubnetConfig -Name "BackendSubnet" -AddressPrefix "10.0.1.0/24"
$vnet = New-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg `
       -Location $location -AddressPrefix "10.0.0.0/16" -Subnet $sub1, $sub2

إنشاء IP عام محجوز

حدد طريقة تخصيص PublicIPAddress على أنها ثابتة. يمكن أن تكون بوابة تطبيق التحجيم التلقائي VIP ثابتة فقط. عناوين IP الديناميكية غير مدعومة. يتم دعم PublicIpAddress SKU القياسي فقط.

#Create static public IP
$pip = New-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP" `
       -location $location -AllocationMethod Static -Sku Standard -Zone 1,2,3

استرجاع التفاصيل

استرداد تفاصيل مجموعة الموارد والشبكة الفرعية وIP في كائن محلي لإنشاء تفاصيل تكوين IP لبوابة التطبيق.

$publicip = Get-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP"
$vnet = Get-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg
$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -VirtualNetwork $vnet

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

تكوين تطبيقي ويب لتجمع الواجهة الخلفية. استبدل <site1-name> و site2-name<> بأسماء فريدة في azurewebsites.net المجال.

New-AzAppServicePlan -ResourceGroupName $rg -Name "ASP-01"  -Location $location -Tier Basic `
   -NumberofWorkers 2 -WorkerSize Small
New-AzWebApp -ResourceGroupName $rg -Name <site1-name> -Location $location -AppServicePlan ASP-01
New-AzWebApp -ResourceGroupName $rg -Name <site2-name> -Location $location -AppServicePlan ASP-01

تكوين البنية الأساسية

قم بتكوين تكوين IP وتكوين IP للواجهة الأمامية وتجمع الواجهة الخلفية وإعدادات HTTP والشهادة والمنفذ والمستمع والقاعدة بتنسيق متطابق مع بوابة التطبيق القياسية الموجودة. يتبع SKU الجديد نفس نموذج الكائن مثل SKU القياسي.

استبدل تطبيقي الويب FQDNs (على سبيل المثال: mywebapp.azurewebsites.net) في تعريف متغير $pool.

$ipconfig = New-AzApplicationGatewayIPConfiguration -Name "IPConfig" -Subnet $gwSubnet
$fip = New-AzApplicationGatewayFrontendIPConfig -Name "FrontendIPConfig" -PublicIPAddress $publicip
$pool = New-AzApplicationGatewayBackendAddressPool -Name "Pool1" `
       -BackendIPAddresses <your first web app FQDN>, <your second web app FQDN>
$fp01 = New-AzApplicationGatewayFrontendPort -Name "SSLPort" -Port 443
$fp02 = New-AzApplicationGatewayFrontendPort -Name "HTTPPort" -Port 80

$securepfxpwd = ConvertTo-SecureString -String "Azure123456!" -AsPlainText -Force
$sslCert01 = New-AzApplicationGatewaySslCertificate -Name "SSLCert" -Password $securepfxpwd `
            -CertificateFile "c:\appgwcert.pfx"
$listener01 = New-AzApplicationGatewayHttpListener -Name "SSLListener" `
             -Protocol Https -FrontendIPConfiguration $fip -FrontendPort $fp01 -SslCertificate $sslCert01
$listener02 = New-AzApplicationGatewayHttpListener -Name "HTTPListener" `
             -Protocol Http -FrontendIPConfiguration $fip -FrontendPort $fp02

$setting = New-AzApplicationGatewayBackendHttpSettings -Name "BackendHttpSetting1" `
          -Port 80 -Protocol Http -CookieBasedAffinity Disabled -PickHostNameFromBackendAddress
$rule01 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule1" -RuleType basic `
         -BackendHttpSettings $setting -HttpListener $listener01 -BackendAddressPool $pool -Priority 1
$rule02 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule2" -RuleType basic `
         -BackendHttpSettings $setting -HttpListener $listener02 -BackendAddressPool $pool -Priority 2

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

الآن يمكنك تحديد تكوين التحجيم التلقائي لبوابة التطبيق.

$autoscaleConfig = New-AzApplicationGatewayAutoscaleConfiguration -MinCapacity 2
$sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2

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

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

إنشاء بوابة التطبيق وتضمين مناطق التكرار وتكوين التحجيم التلقائي.

$appgw = New-AzApplicationGateway -Name "AutoscalingAppGw" -Zone 1,2,3 `
  -ResourceGroupName $rg -Location $location -BackendAddressPools $pool `
  -BackendHttpSettingsCollection $setting -GatewayIpConfigurations $ipconfig `
  -FrontendIpConfigurations $fip -FrontendPorts $fp01, $fp02 `
  -HttpListeners $listener01, $listener02 -RequestRoutingRules $rule01, $rule02 `
  -Sku $sku -sslCertificates $sslCert01 -AutoscaleConfiguration $autoscaleConfig

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

استخدم Get-AzPublicIPAddress للحصول على عنوان IP العام لبوابة التطبيق. انسخ عنوان IP العام أو اسم DNS، ثم الصقه في شريط العناوين في المستعرض.

$pip = Get-AzPublicIPAddress -ResourceGroupName $rg -Name AppGwVIP
$pip.IpAddress

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

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

Remove-AzResourceGroup -Name $rg

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