Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Interfejs wiersza polecenia platformy Azure umożliwia skonfigurowanie hostingu wielu witryn internetowych podczas tworzenia bramy aplikacji. W tym artykule zdefiniujesz pule adresów zaplecza przy użyciu zestawów skalowania maszyn wirtualnych. Następnie, bazując na należących do Ciebie domenach, skonfigurujesz odbiorniki i reguły, aby się upewnić, że ruch internetowy dociera do odpowiednich serwerów w pulach. W tym artykule założono, że jesteś właścicielem wielu domen i używasz przykładów www.contoso.com i www.fabrikam.com.
W tym artykule dowiesz się, jak:
- Konfigurowanie sieci
- Tworzenie bramy aplikacji
- Tworzenie odbiorników zaplecza
- Twórz reguły trasowania
- Tworzenie zestawów skalowania maszyn wirtualnych za pomocą pul zaplecza
- Tworzenie rekordu CNAME w domenie
Jeśli wolisz, możesz wykonać tę procedurę przy użyciu programu Azure PowerShell.
Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Wymagania wstępne
Użyj środowiska Bash w Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Get started with Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj Azure CLI. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie Azure CLI w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić Azure CLI w kontenerze Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do Azure CLI za pomocą polecenia az login. Aby zakończyć proces uwierzytelniania, wykonaj kroki wyświetlane na Twoim terminalu. Aby uzyskać inne opcje logowania, zobacz Uwierzytelnianie na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure.
Gdy zostaniesz o to poproszony/a, zainstaluj rozszerzenie Azure CLI przy pierwszym użyciu. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Używanie rozszerzeń i zarządzanie nimi za pomocą interfejsu wiersza polecenia platformy Azure.
Uruchom az version, aby sprawdzić zainstalowaną wersję i biblioteki zależne. Aby zaktualizować do najnowszej wersji, uruchom az upgrade.
- Ten samouczek wymaga wersji 2.0.4 lub nowszej interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.
Tworzenie grupy zasobów
Grupa zasobów to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi. Utwórz grupę zasobów za pomocą polecenia az group create.
W poniższym przykładzie pokazano sposób tworzenia grupy zasobów o nazwie myResourceGroupAG w lokalizacji eastus.
az group create --name myResourceGroupAG --location eastus
Tworzenie zasobów sieciowych
Utwórz sieć wirtualną oraz podsieć o nazwie myAGSubnet, korzystając z polecenia az network vnet create. Następnie możesz dodać podsieć wymaganą przez serwery zaplecza przy użyciu polecenia az network vnet subnet create. Utwórz publiczny adres IP o nazwie myAGPublicIPAddress przy użyciu polecenia 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 \
--allocation-method Static \
--sku Standard
Tworzenie bramy aplikacji
Aby utworzyć bramę aplikacji, możesz użyć polecenia az network application-gateway create. Podczas tworzenia bramy aplikacji za pomocą Azure CLI należy podać informacje o konfiguracji, takie jak wydajność, SKU i ustawienia protokołu HTTP. Brama aplikacji jest przypisywana do wcześniej utworzonej podsieci myAGSubnet i adresu myAGPublicIPAddress.
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 10
Tworzenie bramy aplikacji może potrwać kilka minut. Po utworzeniu bramy aplikacji możesz zauważyć następujące nowe funkcje:
- appGatewayBackendPool — brama aplikacji musi mieć co najmniej jedną pulę adresów zaplecza.
- appGatewayBackendHttpSettings — określa, że port 80 i protokół HTTP są używane do komunikacji.
- appGatewayHttpListener — domyślny odbiornik skojarzony z pulą appGatewayBackendPool.
- appGatewayFrontendIP — przypisuje adres myAGPublicIPAddress do odbiornika appGatewayHttpListener.
- rule1 — domyślna reguła routingu skojarzona z odbiornikiem appGatewayHttpListener.
Dodaj pule zaplecza
Dodaj pule zaplecza potrzebne do przechowywania serwerów zaplecza przy użyciu polecenia az network application-gateway address-pool create
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name contosoPool
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name fabrikamPool
Dodawanie odbiorników
Dodaj odbiorniki potrzebne do kierowania ruchu przy użyciu az network application-gateway http-listener create.
Uwaga / Notatka
Za pomocą usługi Application Gateway lub zapory aplikacyjnej WAF v2 można również skonfigurować maksymalnie 5 nazw hostów dla każdego nasłuchującego i użyć dzikich znaków w nazwie hosta. Aby uzyskać więcej informacji, zobacz nazwy hostów z symbolami wieloznacznymi w nasłuchu.
Aby użyć wielu nazw hostów i symboli wieloznacznych w odbiorniku przy użyciu interfejsu wiersza polecenia platformy Azure, należy użyć --host-names zamiast --host-name. W przypadku nazw hostów można wymienić maksymalnie pięć nazw hostów jako wartości rozdzielane spacjami. Na przykład --host-names "*.contoso.com *.fabrikam.com"
az network application-gateway http-listener create \
--name contosoListener \
--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 fabrikamListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port appGatewayFrontendPort \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway \
--host-name www.fabrikam.com
Dodawanie reguł routingu
Reguły są przetwarzane w kolejności, w której są wyświetlane, jeśli pole priorytetu reguły nie jest używane. Ruch jest kierowany przy użyciu pierwszej reguły, która pasuje, bez względu na szczegółowość. Na przykład jeśli na tym samym porcie utworzono dwie reguły: jedną przy użyciu odbiornika podstawowego, a drugą przy użyciu odbiornika obejmującego wiele witryn, reguła z odbiornikiem obejmującym wiele witryn musi znajdować się przed regułą z odbiornikiem podstawowym, aby funkcja reguły obejmującej wiele witryn działała zgodnie z oczekiwaniami.
W tym przykładzie utworzysz dwie nowe reguły i usuniesz regułę domyślną utworzoną podczas wdrażania bramy aplikacji. Regułę możesz dodać przy użyciu polecenia az network application-gateway rule create.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name contosoRule \
--resource-group myResourceGroupAG \
--http-listener contosoListener \
--rule-type Basic \
--address-pool contosoPool \
--priority 200
az network application-gateway rule create \
--gateway-name myAppGateway \
--name fabrikamRule \
--resource-group myResourceGroupAG \
--http-listener fabrikamListener \
--rule-type Basic \
--address-pool fabrikamPool \
--priority 100
az network application-gateway rule delete \
--gateway-name myAppGateway \
--name rule1 \
--resource-group myResourceGroupAG
Dodawanie priorytetu do reguł routingu
Aby upewnić się, że bardziej szczegółowe reguły są przetwarzane jako pierwsze, użyj pola priorytetu reguły, aby upewnić się, że mają wyższy priorytet. Pole Priorytet reguły musi być ustawione dla wszystkich istniejących reguł routingu żądań, a każda nowa reguła utworzona później musi mieć również wartość priorytetu reguły.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name contosoRule \
--resource-group myResourceGroupAG \
--http-listener contosoListener \
--rule-type Basic \
--priority 200 \
--address-pool contosoPool
az network application-gateway rule create \
--gateway-name myAppGateway \
--name fabrikamRule \
--resource-group myResourceGroupAG \
--http-listener fabrikamListener \
--rule-type Basic \
--priority 100 \
--address-pool fabrikamPool
Tworzenie zestawów skalowania maszyn wirtualnych
W tym przykładzie utworzysz trzy zestawy skalowania maszyn wirtualnych, które obsługują trzy pule backendowe w bramce aplikacyjnej. Utworzone zestawy skalowania będą miały nazwy myvmss1, myvmss2 i myvmss3. Każdy zestaw skalowania zawiera dwa wystąpienia maszyny wirtualnej, na których instalujesz IIS.
for i in `seq 1 2`; do
if [ $i -eq 1 ]
then
poolName="contosoPool"
fi
if [ $i -eq 2 ]
then
poolName="fabrikamPool"
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_D1_v2 \
--upgrade-policy-mode Automatic \
--app-gateway myAppGateway \
--backend-pool-name $poolName
done
Instalowanie serwera NGINX
for i in `seq 1 2`; 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
Tworzenie rekordu CNAME w domenie
Po utworzeniu bramy aplikacji z publicznym adresem IP można pobrać adres DNS i użyć go w celu utworzenia rekordu CNAME w domenie. Aby uzyskać adres DNS bramy aplikacji, możesz użyć polecenia az network public-ip show. Skopiuj wartość fqdn ustawienia DNSSettings i użyj jej jako wartości tworzonego rekordu CNAME.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [dnsSettings.fqdn] \
--output tsv
Użycie rekordów A nie jest zalecane, ponieważ adres VIP może ulec zmianie po ponownym uruchomieniu bramy aplikacji.
Testowanie bramy aplikacji
Wpisz nazwę swojej domeny na pasku adresu przeglądarki. Takie jak http://www.contoso.com.
Zmień adres na drugą domenę. Powinny zostać wyświetlone informacje, jak w następującym przykładzie:
Uprzątnij zasoby
Gdy grupa zasobów, brama aplikacji i wszystkie pokrewne zasoby nie będą już potrzebne, można je usunąć.
az group delete --name myResourceGroupAG
Dalsze kroki
Tworzenie bramy aplikacji z regułami routingu opartymi na ścieżkach URL