مشاركة عبر


قم بإنشاء بوابة تطبيق مع إعادة توجيه داخلي باستخدام Azure CLI

يمكنك استخدام Azure CLI لتكوين web traffic redirection عندما تقوم بإنشاء application gatewa. في هذا البرنامج التعليمي، تقوم بتعريف تجمع الخلفية باستخدام مجموعة قياسات الأجهزة الظاهرية. يمكنك بعد ذلك تكوين المستمعين والقواعد بناءً على المجالات التي تمتلكها للتأكد من وصول حركة مرور الويب إلى التجمع المناسب. يفترض هذا البرنامج التعليمي أنك تملك مجالات متعددة ويستخدم أمثلة على www.contoso.com www.contoso.org.

في هذه المقالة، ستتعرف على كيفية:

  • إعداد الشبكة
  • إنشاء بوابة تطبيق
  • قم بإضافة وحدات الاستماع وقاعدة إعادة التوجيه
  • إنشاء مقياس آلة افتراضي مع مجموعة الواجهة الخلفية
  • إنشاء سجل CNAME في مجالك

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

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

  • يتطلب هذا البرنامج التعليمي الإصدار 2.0.4 أو الأحدث من Azure CLI. إذا كنت تستخدم Azure Cloud Shell، يتم تثبيت أحدث إصدار بالفعل.

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

وتُعد مجموعة الموارد عبارة عن حاوية منطقية يتم فيها توزيع موارد Azure وإدارتها. قم بإنشاء مجموعة موارد باستخدام az group create.

في المثال التالي، سيتم إنشاء مجموعة موارد باسم "myResourceGroupAG" في "eastus".

az group create --name myResourceGroupAG --location eastus

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

إنشاء شبكة افتراضية اسمه myVNet والشبكة الفرعية اسمه myAGSubne ⁩ باستخدام من الألف إلى الياء شبكة vnet إنشاء. يمكنك بعد ذلك إضافة الشبكة الفرعية المسماة myBackendSubnet والتي تحتاجها مجموعة الخوادم الخلفية باستخدام إنشاء الشبكة الفرعية لشبكة az network vnet. أنشئ عنوان IP العام المسمى myAGPublicIPAddress باستخدام az network public-ip create.

az network vnet create \
  --name myVNet \
  --resource-group myResourceGroupAG \
  --location eastus \
  --address-prefix 10.0.0.0/16 \
  --subnet-name myAGSubnet \
  --subnet-prefix 10.0.1.0/24
az network vnet subnet create \
  --name myBackendSubnet \
  --resource-group myResourceGroupAG \
  --vnet-name myVNet \
  --address-prefix 10.0.2.0/24
az network public-ip create \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress

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

استخدم az network application-gateway create لإنشاء بوابة تطبيق تسمى myAppGateway. عند إنشاء بوابة تطبيق باستخدام Azure CLI، فإنك تحدد معلومات التكوين، مثل إعدادات السعة وsku وHTTP. تم تعيين بوابة التطبيق إلى myAGSubnet وmyAGPublicIPAddress اللذين قمت بإنشائهما مسبقاً.

az network application-gateway create \
  --name myAppGateway \
  --location eastus \
  --resource-group myResourceGroupAG \
  --vnet-name myVNet \
  --subnet myAGsubnet \
  --capacity 2 \
  --sku Standard_Medium \
  --http-settings-cookie-based-affinity Disabled \
  --frontend-port 80 \
  --http-settings-port 80 \
  --http-settings-protocol Http \
  --public-ip-address myAGPublicIPAddress

قد يستغرق إنشاء بوابة التطبيق عدة دقائق. بعد إنشاء بوابة التطبيق، يمكنك رؤية الميزات الجديدة لها:

  • appGatewayBackendPool - يجب أن يكون هناك بوابة التطبيق تجمع عنوان الخلفية واحد على الأقل.
  • appGatewayBackendHttpSettings - يحدد هذا المنفذ 80 وبروتوكول HTTP يستخدم للاتصال.
  • appGatewayHttpListener - المستمع الافتراضية المرتبطة appGatewayBackendPool⁩.
  • appGatewayFrontendIP - المتنازل myAGPublicIPAddress ⁩إلى appGatewayHttpListener.
  • rule1 - قاعدة التحويل توجيه مقترن appGatewayHttpListener.

أضف المستمعين والقواعد

يلزم توفر وحدة استماع لتمكين بوابة التطبيق من توجيه حركة مرور الويب بشكل مناسب إلى مجموعة الواجهة الخلفية. في هذا البرنامج التعليمي تقوم بإنشاء مستمِعَيْن اثنين للمجالين الخاصين بك. في هذا المثال، يتم إنشاء وحدات استماع لمجالات www.contoso.com www.contoso.org.

أضف مستمعي الواجهة الخلفية اللازمين لتوجيه نسبة استخدام الشبكة باستخدام az network application-gateway http-listener create.

az network application-gateway http-listener create \
  --name contosoComListener \
  --frontend-ip appGatewayFrontendIP \
  --frontend-port appGatewayFrontendPort \
  --resource-group myResourceGroupAG \
  --gateway-name myAppGateway \
  --host-name www.contoso.com
az network application-gateway http-listener create \
  --name contosoOrgListener \
  --frontend-ip appGatewayFrontendIP \
  --frontend-port appGatewayFrontendPort \
  --resource-group myResourceGroupAG \
  --gateway-name myAppGateway \
  --host-name www.contoso.org

إضافة تكوين إعادة التوجيه

أضف تكوين إعادة التوجيه الذي يرسل حركة المرور من www.contoso.org إلى وحدة الاستماع www.contoso.comفي بوابة التطبيق باستخدام az network application-gateway redirect-config create.

az network application-gateway redirect-config create \
  --name orgToCom \
  --gateway-name myAppGateway \
  --resource-group myResourceGroupAG \
  --type Permanent \
  --target-listener contosoListener \
  --include-path true \
  --include-query-string true

أضف قواعد التحويل

تتم معالجة القواعد بالترتيب الذي تم إنشاؤها به، ويتم توجيه نسبة استخدام الشبكة باستخدام القاعدة الأولى التي تطابق عنوان URL المرسل إلى بوابة التطبيق. على سبيل المثال، إذا كانت لديك قاعدة تستخدم مستمعاً أساسيّاً، وقاعدة تستخدم مستمعاً متعدد المواقع على نفس المنفذ، فيجب إدراج القاعدة مع مستمع متعدد المواقع قبل القاعدة مع المستمع الأساسي من أجل متعدد -قاعدة الموقع لتعمل كما هو متوقع.

في هذا المثال تقوم بإنشاء قاعدتين جديدتين وحذف القاعدة الافتراضية التي تم إنشاؤها. يمكنك إضافة القاعدة باستخدام az network application-gateway rule create.

az network application-gateway rule create \
  --gateway-name myAppGateway \
  --name contosoComRule \
  --resource-group myResourceGroupAG \
  --http-listener contosoComListener \
  --rule-type Basic \
  --address-pool appGatewayBackendPool
az network application-gateway rule create \
  --gateway-name myAppGateway \
  --name contosoOrgRule \
  --resource-group myResourceGroupAG \
  --http-listener contosoOrgListener \
  --rule-type Basic \
  --redirect-config orgToCom
az network application-gateway rule delete \
  --gateway-name myAppGateway \
  --name rule1 \
  --resource-group myResourceGroupAG

إنشاء مجموعات مقياس آلة افتراضية

في هذا المثال، تقوم بإنشاء مجموعة مقياس آلة افتراضية تدعم تجمع الواجهة الخلفية الذي قمت بإنشائه. تسمى مجموعة القياسات التي تقوم بإنشائها myvmss وتحتوي على مثيلين للجهاز الظاهري تقوم بتثبيت NGINX عليهما.

az vmss create \
  --name myvmss \
  --resource-group myResourceGroupAG \
  --image Ubuntu2204 \
  --admin-username azureuser \
  --admin-password Azure123456! \
  --instance-count 2 \
  --vnet-name myVNet \
  --subnet myBackendSubnet \
  --vm-sku Standard_DS2 \
  --upgrade-policy-mode Automatic \
  --app-gateway myAppGateway \
  --backend-pool-name appGatewayBackendPool

قم بتثبيت NGINX

قم بتشغيل هذا الأمر في نافذة shell:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroupAG \
  --vmss-name myvmss \
  --settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"],
  "commandToExecute": "./install_nginx.sh" }'

إنشاء سجل CNAME في مجالك

بعد إنشاء بوابة التطبيق بعنوان IP العام الخاص بها، يمكنك الحصول على عنوان DNS واستخدامه لإنشاء سجل CNAME في مجالك. يمكنك استخدام az network public-ip show للحصول على عنوان DNS لبوابة التطبيق. انسخ قيمة fqdn لإعدادات DNS واستخدمها كقيمة لسجل CNAME الذي تنشئه. لا يوصى باستخدام سجلات A لأن VIP قد يتغير عند إعادة تشغيل بوابة التطبيق.

az network public-ip show \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --query [dnsSettings.fqdn] \
  --output tsv

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

أدخل اسم مجالك في شريط العنوان في متصفحك. مثل http://www.contoso.com.

اختبار موقع contoso في بوابة التطبيق

قم بتغيير العنوان إلى مجالك الآخر، على سبيل المثال http://www.contoso.org ، ويجب أن ترى أنه تمت إعادة توجيه نسبة استخدام الشبكة مرة أخرى إلى وحدة الاستماع www.contoso.com.

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

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

  • إعداد الشبكة
  • إنشاء بوابة تطبيق
  • قم بإضافة وحدات الاستماع وقاعدة إعادة التوجيه
  • إنشاء مقياس آلة افتراضي مع مجموعة الواجهة الخلفية
  • إنشاء سجل CNAME في مجالك