إنشاء عبارة تطبيق مع HTTP إلى إعادة توجيه HTTPS باستخدام CLI Azure
يمكنك استخدام مدخل Microsoft Azure لإنشاءبوابة تطبيق مع شهادة لإنهاء بروتوكول أمان طبقة النقل. يتم استخدام قاعدة التحويل لإعادة توجيه نسبة استخدام الشبكة الخاص بـ HTTP إلى منفذ HTTPS في بوابة التطبيق. في هذا المثال، يمكنك أيضا إنشاء مجموعة مقياس الجهاز الظاهري لتجمع الواجهة الخلفية لبوابة التطبيق التي تحتوي على مثيلين للجهاز الظاهري.
في هذه المقالة، ستتعرف على كيفية:
- إنشاء شهادة موقَّعة ذاتيًا
- قم بإعداد شبكة
- إنشاء بوابة تطبيق من خلال استخدام الشهادة
- إضافة وحدة استماع وقاعدة إعادة توجيه
- إنشاء مجموعة مقياس الجهاز الظاهري مع تجمع الواجهة الخلفية الافتراضي
إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.
المتطلبات الأساسية
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع التشغيل السريع ل Bash في Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات أخرى لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
- يتطلب هذا البرنامج التعليمي الإصدار 2.0.4 أو الأحدث من Azure CLI. إذا كنت تستخدم Azure Cloud Shell، يتم تثبيت أحدث إصدار بالفعل.
إنشاء شهادة موقَّعة ذاتيًا
لأغراض استخدام الإنتاج، يجب عليك استيراد شهادة صالحة مُوقَّعة من قِبَل موفّر موثوق به. لهذا البرنامج التعليمي، يمكنك إنشاء شهادة موقعة ذاتيا وملف pfx باستخدام الأمر openssl.
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out appgwcert.crt
أدخل القيم التي لها معنى بالنسبة للشهادة. يمكنك قبول القيم الافتراضية.
openssl pkcs12 -export -out appgwcert.pfx -inkey privateKey.key -in appgwcert.crt
أدخل كلمة مرور الشهادة. في هذا المثال، يتم استخدام Azure123456! .
إنشاء مجموعة موارد
وتُعد مجموعة الموارد عبارة عن حاوية منطقية يتم فيها توزيع موارد Azure وإدارتها. قم بإنشاء مجموعة موارد باستخدام az group create.
في المثال التالي، سيتم إنشاء مجموعة موارد باسم "myResourceGroupAG" في "eastus".
az group create --name myResourceGroupAG --location eastus
إنشاء موارد الشبكة
إنشاء شبكة افتراضية اسمه myVNet والشبكة الفرعية اسمه myAGSubne باستخدام من الألف إلى الياء شبكة vnet إنشاء. يمكنك بعد ذلك إضافة الشبكة الفرعية المسماة myBackendSubnet التي تحتاجها خوادم الواجهة الخلفية باستخدام az network vnet subnet create. أنشئ عنوان 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 443 \
--http-settings-port 80 \
--http-settings-protocol Http \
--public-ip-address myAGPublicIPAddress \
--cert-file appgwcert.pfx \
--cert-password "Azure123456!"
قد يستغرق إنشاء بوابة التطبيق عدة دقائق. بعد إنشاء بوابة التطبيق، يمكنك رؤية الميزات الجديدة لها:
- appGatewayBackendPool - يجب أن يكون هناك بوابة التطبيق تجمع عنوان الخلفية واحد على الأقل.
- appGatewayBackendHttpSettings - يحدد هذا المنفذ 80 وبروتوكول HTTP يستخدم للاتصال.
- appGatewayHttpListener - المستمع الافتراضية المرتبطة appGatewayBackendPool.
- appGatewayFrontendIP - المتنازل myAGPublicIPAddress إلى appGatewayHttpListener.
- rule1 - قاعدة التحويل توجيه مقترن appGatewayHttpListener.
إضافة وحدة استماع وقاعدة إعادة توجيه
إضافة منفذ HTTP
يمكنك استخدام az شبكة اتصال التطبيق-عبارة منفذ أمامي إنشاء لإضافة منفذ HTTP إلى عبارة التطبيق.
az network application-gateway frontend-port create \
--port 80 \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name httpPort
إضافة وحدة الاستماع HTTP
يمكنك استخدام az network application-gateway http-listener create لإضافة وحدة الاستماع myListener إلى بوابة التطبيق.
az network application-gateway http-listener create \
--name myListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port httpPort \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway
إضافة تكوين إعادة التوجيه
إضافة HTTP إلى تكوين إعادة توجيه HTTPS إلى عبارة التطبيق باستخدام az network application-gateway redirect-config create.
az network application-gateway redirect-config create \
--name httpToHttps \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--type Permanent \
--target-listener appGatewayHttpListener \
--include-path true \
--include-query-string true
إضافة قاعدة التوجيه
إضافة قاعدة التوجيه التي تسمى rule2 مع تكوين إعادة التوجيه إلى بوابة التطبيق باستخدام az network application-gateway rule create.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name rule2 \
--resource-group myResourceGroupAG \
--http-listener myListener \
--rule-type Basic \
--redirect-config httpToHttps
إنشاء مجموعة مقياس آلة افتراضية
في هذا المثال، يمكنك إنشاء مجموعة مقياس الجهاز الظاهري المسماة myvmss التي توفر خوادم لتجمع الواجهة الخلفية في بوابة التطبيق. ترتبط الأجهزة الظاهرية في مجموعة المقياس مع myBackendSubnet و appGatewayBackendPool. لإنشاء مجموعة المقياس، يمكنك استخدام إنشاء az vmss.
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
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" }'
اختبار بوابة التطبيق
للحصول على عنوان IP العام لبوابة التطبيق، استخدم عرض الشبكة العامة للشبكة من الألف إلى الياء. نسخ عنوان IP العام، ثم ألصقه في شريط العنوان في متصفحك.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
لقبول تحذير الأمان إذا استخدمت شهادة موقعة ذاتياً، حدد "Details"، ومن ثمَّ "Go on to the webpage": ثم يتم عرض موقع NGINX الآمن الخاص بك كما في المثال التالي: