Aracılığıyla paylaş


Azure CLI kullanarak web trafiğini URL'ye göre yönlendirme

Web trafiğini yöneten bir BT yöneticisi olarak, müşterilerinizin ve kullanıcılarınızın ihtiyaç duydukları bilgileri mümkün olan en kısa sürede almasına yardımcı olmak istiyorsunuz. Deneyimlerini iyileştirmenin bir yolu, farklı türlerde web trafiğini farklı sunucu kaynaklarına yönlendirmektir. Bu makalede, uygulamanızdan farklı trafik türleri için Application Gateway yönlendirmesini ayarlamak ve yapılandırmak için Azure CLI'yi nasıl kullanacağınız gösterilmektedir. Yönlendirme daha sonra trafiği URL'ye göre farklı sunucu havuzlarına yönlendirir.

URL yönlendirme örneği

Bu makalede şunların nasıl yapılacağını öğreneceksiniz:

  • İhtiyacınız olan ağ kaynakları için kaynak grubu oluşturma
  • Ağ kaynaklarını oluşturma
  • Uygulamanızdan gelen trafik için bir uygulama ağ geçidi oluşturma
  • Farklı trafik türleri için sunucu havuzlarını ve yönlendirme kurallarını belirtme
  • Havuzun otomatik olarak ölçeklenebilmesi için her havuz için bir ölçek kümesi oluşturma
  • Farklı trafik türlerinin doğru havuza gittiğini doğrulayabilmeniz için bir test çalıştırın

İsterseniz, Azure PowerShell veya Azureportalını kullanarak bu yordamı tamamlayabilirsiniz.

Azure hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun.

Önkoşullar

  • 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.

Bir kaynak grubu oluşturun

Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği mantıksal bir kapsayıcıdır. kullanarak az group createbir 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

kullanarak myVNet adlı sanal ağı ve az network vnet create adlı alt ağı oluşturun. Ardından, kullanarak arka uç sunucuları için gereken az network vnet subnet create adlı bir alt ağ ekleyin. kullanarak az network public-ip create 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

URL eşlemesi ile uygulama ağ geçidi oluşturma

az network application-gateway create adlı bir uygulama ağ geçidi oluşturmak için 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 myAGSubnet ve myAGPublicIPAddress'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:

Özellik Açıklama
appGatewayBackendPool Bir uygulama ağ geçidinin en az bir arka uç adres havuzu olmalıdır.
appGatewayBackendHttpSettings İletişim için 80 numaralı bağlantı noktasının ve HTTP protokollerinin kullanıldığını belirtir.
appGatewayHttpListener appGatewayBackendPool ile ilişkilendirilmiş varsayılan dinleyici
appGatewayFrontendIP appGatewayHttpListener'a myAGPublicIPAddress'i atar.
kural1 appGatewayHttpListener ile ilişkili varsayılan yönlendirme kuralı.

Görüntü ve video arka uç havuzları ve bağlantı noktası ekleme

kullanarak imagesBackendPool ve az network application-gateway address-pool create adlı arka uç havuzlarını uygulama ağ geçidinize ekleyin. Havuzlar için ön uç bağlantı noktasını az network application-gateway frontend-port create kullanarak 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 port8080

Arka uç dinleyicisi ekleyin

gerekli trafiği kullanarak yönlendirmek için az network application-gateway http-listener create adlı arka uç dinleyicisini ekleyin.

az network application-gateway http-listener create \
  --name backendListener \
  --frontend-ip appGatewayFrontendIP \
  --frontend-port port8080 \
  --resource-group myResourceGroupAG \
  --gateway-name myAppGateway

URL yol haritası ekleme

URL yolu eşlemeleri, belirli URL'lerin belirli arka uç havuzlarına yönlendirilmesini sağlar. Oluşturun imagePathRule ve videoPathRule adlı URL yol eşlemelerini, az network application-gateway url-path-map create ve az network application-gateway url-path-map rule create kullanarak.

az network application-gateway url-path-map create \
  --gateway-name myAppGateway \
  --name myPathMap \
  --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 myPathMap \
  --paths /video/* \
  --address-pool videoBackendPool \
  --http-settings appGatewayBackendHttpSettings

Yönlendirme kuralı ekleme

Yönlendirme kuralı, URL eşlemelerini oluşturduğunuz dinleyiciyle ilişkilendirir. kullanarak az network application-gateway rule create adlı bir kural ekleyin.

az network application-gateway rule create \
  --gateway-name myAppGateway \
  --name rule2 \
  --resource-group myResourceGroupAG \
  --http-listener backendListener \
  --rule-type PathBasedRouting \
  --url-path-map myPathMap \
  --address-pool appGatewayBackendPool \
  --priority 200

Sanal Makine Ölçek Kümeleri oluşturma

Bu makalede, oluşturduğunuz üç arka uç havuzunu destekleyen üç Sanal Makine Ölçek Kümesi oluşturacaksınız. myvmss1, myvmss2 ve myvmss3 adlı ölçek kümeleri oluşturursunuz. Her ölçek kümesi, NGINX yüklediğiniz iki sanal makine örneği içerir.

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 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 $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 edin

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.htmveya http://40.121.222.19:8080/video/test.htm.

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

Temel URL’yi uygulama ağ geçidinde test etme

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:

Görüntü URL’sini uygulama ağ geçidinde test etme

URL'yi http://< ip-address>:8080/video/test.htmlolarak değiştirin ve ip adresi< için >IP adresinizi değiştirin ve aşağıdaki örneğe benzer bir şey görmeniz gerekir.

Video URL’sini uygulama ağ geçidinde test etme

Kaynakları temizle

Artık gerekli olmadığında kaynak grubunu, uygulama ağ geçidini ve tüm ilgili kaynakları kaldırın.

az group delete --name myResourceGroupAG

Sonraki Adımlar

URL yol tabanlı yeniden yönlendirme ile uygulama ağ geçidi oluşturma