Öğretici: Azure CLI kullanarak URL yolu tabanlı yeniden yönlendirme ile bir uygulama ağ geçidi oluşturma
Azure CLI'yi kullanarak, bir uygulama ağ geçidi oluştururken URL yolu tabanlı yönlendirme kuralları yapılandırabilirsiniz. Bu öğreticide, sanal makine ölçek kümeleri kullanarak arka uç havuzları oluşturacaksınız. Daha sonra, web trafiğinin uygun arka uç havuzuna yeniden yönlendirildiğinden emin olmak için URL yönlendirme kuralları oluşturacaksınız.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Ağı ayarlama
- Uygulama ağ geçidi oluşturma
- Dinleyiciler ve yönlendirme kuralları ekleme
- Arka uç havuzları için sanal makine ölçek kümeleri oluşturma
Aşağıdaki örnekte, 8080 ve 8081 numaralı bağlantı noktalarından gelen ve aynı arka uç havuzlarına yönlendirilmekte olan site trafiği gösterilir:
Tercih ederseniz, bu öğreticiyi Azure PowerShell kullanarak tamamlayabilirsiniz.
Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
Önkoşullar
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.
Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
- Bu öğretici, Azure CLI'nın 2.0.4 veya sonraki bir sürümünü gerektirir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.
Kaynak grubu oluşturma
Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. az group create ile bir kaynak grubu oluşturun.
Aşağıdaki örnek eastus konumunda myResourceGroupAG adlı bir kaynak grubu oluşturur.
az group create --name myResourceGroupAG --location eastus
Ağ kaynakları oluşturma
az network vnet create komutunu kullanarak myVNet adlı sanal ağı ve myAGSubnet adlı alt ağı oluşturun. Daha sonra az network vnet subnet create kullanan arka uç sunucularının gerek duyduğu myBackendSubnet adlı alt ağı ekleyebilirsiniz. az network public-ip create komutunu kullanarak myAGPublicIPAddress adlı genel IP adresini oluşturun.
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 \
--allocation-method Static \
--sku Standard
Uygulama ağ geçidi oluşturma
myAppGateway adlı uygulama ağ geçidini oluşturmak için az network application-gateway create komutunu kullanın. Azure CLI kullanarak bir uygulama ağ geçidi oluşturduğunuzda, kapasite, sku ve HTTP ayarları gibi yapılandırma bilgilerini belirtirsiniz. Uygulama ağ geçidi, daha önce oluşturduğunuz myAGSubnet ve myPublicIPAddress'e atanır.
az network application-gateway create \
--name myAppGateway \
--location eastus \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--subnet myAGsubnet \
--capacity 2 \
--sku Standard_v2 \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 80 \
--http-settings-port 80 \
--http-settings-protocol Http \
--public-ip-address myAGPublicIPAddress \
--priority 100
Uygulama ağ geçidinin oluşturulması birkaç dakika sürebilir. Uygulama ağ geçidi oluşturulduktan sonra şu yeni özellikleri görürsünüz:
- appGatewayBackendPool: Bir uygulama ağ geçidi en az bir arka uç adres havuzuna sahip olmalıdır.
- appGatewayBackendHttpSettings: İletişim için 80 numaralı bağlantı noktasının ve HTTP protokolünün kullanıldığını belirtir.
- appGatewayHttpListener: appGatewayBackendPool ile ilişkili varsayılan dinleyicidir.
- appGatewayFrontendIP: appGatewayHttpListener’a myAGPublicIPAddress’i atar.
- kural 1 - appGatewayHttpListener ile ilişkili varsayılan yönlendirme kuralıdır.
Arka uç havuzları ve bağlantı noktaları ekleme
az network application-gateway address-pool create kullanarak imagesBackendPool ve videoBackendPool adlı arka uç adres havuzlarını uygulama ağ geçidinize ekleyebilirsiniz. az network application-gateway frontend-port create kullanarak havuzlara ön uç bağlantı noktalarını eklersiniz.
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name imagesBackendPool
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name videoBackendPool
az network application-gateway frontend-port create \
--port 8080 \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name bport
az network application-gateway frontend-port create \
--port 8081 \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name rport
Dinleyiciler ve kurallar ekleme
Dinleyiciler ekleme
az network application-gateway http-listener create kullanarak trafiği yönlendirmek için gereken backendListener ve redirectedListener adlı arka uç dinleyicilerini ekleyin.
az network application-gateway http-listener create \
--name backendListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port bport \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway
az network application-gateway http-listener create \
--name redirectedListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port rport \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway
Varsayılan URL yolu eşlemesi ekleme
URL yolu eşlemeleri, belirli URL'lerin belirli arka uç havuzlarına yönlendirildiğinden emin olur. az network application-gateway url-path-map create ve az network application-gateway url-path-map rule create kullanarak imagePathRule ve videoPathRule adlı URL yol eşlemelerini oluşturabilirsiniz.
az network application-gateway url-path-map create \
--gateway-name myAppGateway \
--name urlpathmap \
--paths /images/* \
--resource-group myResourceGroupAG \
--address-pool imagesBackendPool \
--default-address-pool appGatewayBackendPool \
--default-http-settings appGatewayBackendHttpSettings \
--http-settings appGatewayBackendHttpSettings \
--rule-name imagePathRule
az network application-gateway url-path-map rule create \
--gateway-name myAppGateway \
--name videoPathRule \
--resource-group myResourceGroupAG \
--path-map-name urlpathmap \
--paths /video/* \
--address-pool videoBackendPool
Yeniden yönlendirme yapılandırması ekleme
az network application-gateway redirect-config create kullanarak dinleyici için yeniden yönlendirmeyi yapılandırabilirsiniz.
az network application-gateway redirect-config create \
--gateway-name myAppGateway \
--name redirectConfig \
--resource-group myResourceGroupAG \
--type Found \
--include-path true \
--include-query-string true \
--target-listener backendListener
Yeniden yönlendirme URL yolu eşlemesi ekleme
az network application-gateway url-path-map create \
--gateway-name myAppGateway \
--name redirectpathmap \
--paths /images/* \
--resource-group myResourceGroupAG \
--redirect-config redirectConfig \
--rule-name redirectPathRule
Yönlendirme kuralları ekleme
Yönlendirme kuralları, URL yolu eşlemelerini oluşturduğunuz dinleyicilerle ilişkilendirir. az network application-gateway rule create kullanarak defaultRule ve redirectedRule adlı kuralları ekleyebilirsiniz.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name defaultRule \
--resource-group myResourceGroupAG \
--http-listener backendListener \
--rule-type PathBasedRouting \
--url-path-map urlpathmap \
--address-pool appGatewayBackendPool \
--priority 100
az network application-gateway rule create \
--gateway-name myAppGateway \
--name redirectedRule \
--resource-group myResourceGroupAG \
--http-listener redirectedListener \
--rule-type PathBasedRouting \
--url-path-map redirectpathmap \
--address-pool appGatewayBackendPool \
--priority 100
Sanal makine ölçek kümesi oluşturma
Bu örnekte, oluşturduğunuz üç arka uç havuzunu destekleyen üç sanal makine ölçek kümesi oluşturacaksınız. Oluşturduğunuz ölçek kümeleri myvmss1, myvmss2 ve myvmss3 olarak adlandırılır. Her bir ölçek kümesi NGINX yükleyeceğiniz iki sanal makine örneği içerir.
azure-user> ve <password> yerine seçtiğiniz kullanıcı adını ve parolayı yazın<.
for i in `seq 1 3`; do
if [ $i -eq 1 ]
then
poolName="appGatewayBackendPool"
fi
if [ $i -eq 2 ]
then
poolName="imagesBackendPool"
fi
if [ $i -eq 3 ]
then
poolName="videoBackendPool"
fi
az vmss create \
--name myvmss$i \
--resource-group myResourceGroupAG \
--image Ubuntu2204 \
--admin-username <azure-user> \
--admin-password <password> \
--instance-count 2 \
--vnet-name myVNet \
--subnet myBackendSubnet \
--vm-sku Standard_DS2 \
--upgrade-policy-mode Automatic \
--app-gateway myAppGateway \
--backend-pool-name $poolName
done
NGINX yükleme
for i in `seq 1 3`; do
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroupAG \
--vmss-name myvmss$i \
--settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'
done
Uygulama ağ geçidini test etme
Uygulama ağ geçidinin genel IP adresini almak için az network public-ip show komutunu kullanın. Genel IP adresini kopyalayıp tarayıcınızın adres çubuğuna yapıştırın. Örneğin, http://40.121.222.19
, http://40.121.222.19:8080/images/test.htm
, http://40.121.222.19:8080/video/test.htm
veya http://40.121.222.19:8081/images/test.htm
.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
URL'yi http://< ip-address>:8080/images/test.html olarak değiştirin ve IP adresinizi ip-adresi> olarak <değiştirin ve aşağıdaki örneğe benzer bir şey görmeniz gerekir:
URL'yi http://< ip-address>:8080/video/test.html olarak değiştirin ve IP adresinizi ip-adresi> olarak <değiştirin ve aşağıdaki örneğe benzer bir şey görmeniz gerekir:
Şimdi URL'yi http://< ip-address>:8081/images/test.htm olarak değiştirin ve ip> adresi için <IP adresinizi değiştirin ve trafiğin http://< ip-address>:8080/images konumunda görüntüler arka uç havuzuna yeniden yönlendirildiğine bakın.
Kaynakları temizleme
Artık gerekli olmadığında kaynak grubunu, uygulama ağ geçidini ve tüm ilgili kaynakları silin.
az group delete --name myResourceGroupAG