Kierowanie ruchu internetowego na podstawie adresu URL przy użyciu interfejsu wiersza polecenia platformy Azure
Jako administrator IT zarządzający ruchem internetowym chcesz pomóc klientom i użytkownikom jak najszybciej uzyskać potrzebne informacje. Jednym ze sposobów zoptymalizowania ich środowiska jest skierowanie różnych rodzajów ruchu internetowego do różnych zasobów serwera. W tym artykule pokazano, jak za pomocą interfejsu wiersza polecenia platformy Azure skonfigurować i skonfigurować routing usługi Application Gateway dla różnych typów ruchu z aplikacji. Następnie, na podstawie adresu URL, routing kieruje ruch do różnych pul serwerów.
W tym artykule omówiono sposób wykonywania następujących zadań:
- Tworzenie grupy zasobów dla potrzebnych zasobów sieciowych
- Tworzenie zasobów sieciowych
- Tworzenie bramy aplikacji na potrzeby ruchu pochodzącego z aplikacji
- Określanie pul serwerów i reguł rozsyłania dla różnych typów ruchu
- Tworzenie zestawów skalowania dla poszczególnych pul umożliwiających ich automatycznie skalowanie
- Uruchamianie testu sprawdzającego, czy różne typy ruchu trafiają do poprawnych pul
Jeśli wolisz, możesz wykonać tę procedurę przy użyciu programu Azure PowerShell lub witryny Azure Portal.
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Wymagania wstępne
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie 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. Za pomocą polecenia az group create
utwórz grupę zasobów.
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ą o nazwie myVNet i podsieć o nazwie myAGSubnet przy użyciu polecenia az network vnet create
. Następnie dodaj podsieć o nazwie myBackendSubnet wymaganą przez serwery zaplecza przy użyciu polecenia az network vnet subnet create
. Za pomocą polecenia az network public-ip create
utwórz publiczny adres IP o nazwie myAGPublicIPAddress.
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 z mapą adresów URL
Użyj polecenia az network application-gateway create
, aby utworzyć bramę aplikacji o nazwie myAppGateway. Podczas tworzenia bramy aplikacji przy użyciu interfejsu wiersza polecenia platformy Azure należy podać informacje o konfiguracji, takie jak pojemność, jednostka SKU i ustawienia protokołu HTTP. Brama aplikacji jest przypisywana do podsieci myAGSubnet i 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 100
Tworzenie bramy aplikacji może potrwać kilka minut. Po utworzeniu bramy aplikacji możesz zauważyć następujące nowe funkcje:
Funkcja | opis |
---|---|
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 rozsyłania skojarzona z odbiornikiem appGatewayHttpListener. |
Dodawanie pul zaplecza i portu na potrzeby obsługi obrazów i wideo
Dodaj pule zaplecza o nazwach imagesBackendPool i videoBackendPool do bramy aplikacji, używając polecenia az network application-gateway address-pool create
. Port frontonu jest dodawany do pul za pomocą polecenia az network application-gateway frontend-port create
.
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
Dodawanie odbiornika zaplecza
Dodaj odbiornik zaplecza o nazwie backendListener, wymagany do kierowania ruchu, używając polecenia az network application-gateway http-listener create
.
az network application-gateway http-listener create \
--name backendListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port port8080 \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway
Dodawanie mapy ścieżek URL
Mapy ścieżek URL zapewniają kierowanie określonych adresów URL do określonych pul zaplecza. Utwórz mapy ścieżek URL o nazwach imagePathRule i videoPathRule za pomocą poleceń az network application-gateway url-path-map create
i az network application-gateway url-path-map rule create
.
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
Dodawanie reguły rozsyłania
Reguła routingu kojarzy mapę adresów URL z utworzonym odbiornikiem. Dodaj regułę o nazwie rule2 przy użyciu polecenia az network application-gateway rule create
.
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
Tworzenie zestawów skalowania maszyn wirtualnych
W tym artykule utworzysz trzy zestawy skalowania maszyn wirtualnych, które obsługują utworzone trzy pule zaplecza. Utworzysz zestawy skalowania o nazwach myvmss1, myvmss2 i myvmss3. Każdy zestaw skalowania zawiera dwa wystąpienia maszyny wirtualnej, na których instaluje się serwer NGINX.
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
Instalowanie serwera NGINX
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
Testowanie bramy aplikacji
Aby uzyskać publiczny adres IP bramy aplikacji, użyj polecenia az network public-ip show. Skopiuj publiczny adres IP, a następnie wklej go na pasku adresu przeglądarki. Na przykład http://40.121.222.19
, http://40.121.222.19:8080/images/test.htm
lub http://40.121.222.19:8080/video/test.htm
.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Zmień adres URL na http://< ip-address>:8080/images/test.html, zastępując adres IP dla adresu <>IP i powinien zostać wyświetlony kod podobny do następującego przykładu:
Zmień adres URL na http://< ip-address>:8080/video/test.html, zastępując adres IP adresem IP adresu <IP> i powinien zostać wyświetlony kod podobny do poniższego przykładu.
Czyszczenie zasobów
Gdy grupa zasobów, brama aplikacji i wszystkie pokrewne zasoby nie będą już potrzebne, można je usunąć.
az group delete --name myResourceGroupAG
Następne kroki
Tworzenie bramy aplikacji z przekierowywaniem na podstawie ścieżki URL