Aracılığıyla paylaş


Azure CLI kullanarak iç yeniden yönlendirme ile uygulama ağ geçidi oluşturma

Bir uygulama ağ geçidi oluştururken web trafiği yeniden yönlendirmesini yapılandırmak için Azure CLI'yi kullanabilirsiniz. Bu öğreticide, sanal makineler ölçek kümesi kullanarak bir arka uç havuzu tanımlarsınız. Ardından, web trafiğinin uygun havuza ulaştığından emin olmak için sahip olduğunuz etki alanlarına göre dinleyicileri ve kuralları yapılandırırsınız. Bu öğreticide birden çok etki alanının sahibi olduğunuz varsayılır ve www.contoso.com ve www.contoso.org örnekleri kullanılır.

Bu makalede şunları öğreneceksiniz:

  • Ağı ayarlama
  • Uygulama ağ geçidi oluşturma
  • Dinleyiciler ve yeniden yönlendirme kuralı ekleme
  • Arka uç havuzuyla sanal makine ölçek kümesi oluşturma
  • Etki alanınızda bir CNAME kaydı oluşturma

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

Ön koş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. Ardından az network vnet subnet create komutunu kullanarak sunucuların arka uç havuzu için gereken 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

Uygulama ağ geçidi oluşturma

myAppGateway adlı uygulama ağ geçidini oluşturmak için az network application-gateway create komutunu kullanabilirsiniz. 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’e ve daha önce oluşturduğunuz 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_Medium \
  --http-settings-cookie-based-affinity Disabled \
  --frontend-port 80 \
  --http-settings-port 80 \
  --http-settings-protocol Http \
  --public-ip-address myAGPublicIPAddress

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.

Dinleyiciler ve kurallar ekleme

Uygulama ağ geçidinin trafiği arka uç havuzuna uygun şekilde yönlendirmesini sağlamak için bir dinleyici gereklidir. Bu öğreticide iki etki alanınız için iki dinleyici oluşturacaksınız. Bu örnekte, www.contoso.com ve www.contoso.org etki alanları için dinleyiciler oluşturulur.

az network application-gateway http-listener create kullanarak gereken arka uç dinleyicilerini ekleyin.

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

Yeniden yönlendirme yapılandırmasını ekleme

az network application-gateway redirect-config create komutunu kullanarak uygulama ağ geçidindeki www.contoso.com için www.consoto.org gelen trafiği dinleyiciye gönderen yeniden yönlendirme yapılandırmasını ekleyin.

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

Yönlendirme kuralları ekleme

Kurallar oluşturuldukları sırayla işlenir ve trafik, uygulama ağ geçidine gönderilen URL ile eşleşen ilk kural kullanılarak yönlendirilir. Örneğin, aynı bağlantı noktasında temel bir dinleyici kullanan bir kuralınız ve çok siteli dinleyici kullanan bir kuralınız varsa çok siteli kuralın beklendiği gibi çalışması için çok siteli dinleyicinin kuralı temel dinleyici kuralından önce listelenmelidir.

Bu örnekte iki yeni kural oluşturacak ve oluşturulan varsayılan kuralı silebilirsiniz. Kuralı az network application-gateway rule create komutunu kullanarak ekleyebilirsiniz.

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

Sanal makine ölçek kümesi oluşturma

Bu örnekte, oluşturduğunuz arka uç havuzunu destekleyen bir sanal makine ölçek kümesi oluşturursunuz. Oluşturduğunuz ölçek kümesi myvmss olarak adlandırılır ve üzerine NGINX yüklediğiniz iki sanal makine örneği içerir.

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 yükleme

Kabuk penceresinde şu komutu çalıştırın:

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" }'

Etki alanınızda CNAME kaydı oluşturma

Uygulama ağ geçidi genel IP adresiyle oluşturulduktan sonra DNS adresini alabilir ve etki alanınızda bir CNAME kaydı oluşturmak için kullanabilirsiniz. Uygulama ağ geçidinin DNS adresini almak için az network public-ip show komutunu kullanabilirsiniz. DNSSetting için fqdn değerini kopyalayın ve bu değeri oluşturduğunuz CNAME kaydının değeri olarak kullanın. Uygulama ağ geçidi yeniden başlatıldığında VIP değişebileceğinden A kayıtlarının kullanımı önerilmez.

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

Uygulama ağ geçidini test etme

Tarayıcınızın adres çubuğuna, etki alanı adınızı girin. Gibi http://www.contoso.com.

Test contoso site in application gateway

Örneğin http://www.contoso.org adresi diğer etki alanınızla değiştirin ve trafiğin www.contoso.com için dinleyiciye geri yönlendirildiğini görmeniz gerekir.

Sonraki adımlar

Bu öğreticide, şunların nasıl yapıldığını öğrendiniz:

  • Ağı ayarlama
  • Uygulama ağ geçidi oluşturma
  • Dinleyiciler ve yeniden yönlendirme kuralı ekleme
  • Arka uç havuzuyla sanal makine ölçek kümesi oluşturma
  • Etki alanınızda bir CNAME kaydı oluşturma