Rozwiązywanie problemów z usługą App Service w usłudze Application Gateway

Dowiedz się, jak diagnozować i rozwiązywać problemy, które mogą wystąpić, gdy usługa aplikacja systemu Azure jest używana jako obiekt docelowy zaplecza z usługą aplikacja systemu Azure Gateway.

Omówienie

W tym artykule dowiesz się, jak rozwiązywać następujące problemy, zgodnie z opisem w centrum architektury: Zachowanie oryginalnej nazwy hosta HTTP między zwrotnym serwerem proxy i aplikacją internetową zaplecza

Główną przyczyną powyższych objawów jest konfiguracja, która zastępuje nazwę hosta, która jest używana przez usługę Application Gateway w kierunku usługi App Service do innej nazwy hosta, jak widać w przeglądarce. Często nazwa hosta jest zastępowana domyślną domeną usługi App Service "azurewebsites.net".

Root cause - Application Gateway overwrites hostname to azurewebsites.net

Przykładowa konfiguracja

Jeśli konfiguracja jest zgodna z jedną z dwóch poniższych sytuacji, konfiguracja podlega instrukcjom w tym artykule:

  • Wybierz nazwę hosta z adresu zaplecza jest włączona w Ustawienia HTTP
  • Zastąpienie z określoną nazwą domeny jest ustawione na wartość inną niż to, co ma żądanie przeglądarki

Przyczyna

Usługa App Service jest usługą wielodostępną, dlatego używa nagłówka hosta w żądaniu w celu kierowania żądania do poprawnego punktu końcowego. Domyślna nazwa domeny usługi App Services , *.azurewebsites.net (np. contoso.azurewebsites.net) różni się od nazwy domeny bramy aplikacji (np. contoso.com). W usłudze App Service zaplecza brakuje wymaganego kontekstu do wygenerowania adresów URL przekierowania lub plików cookie, które są zgodne z domeną, jak widać w przeglądarce.

Rozwiązanie

Zalecanym rozwiązaniem produkcyjnym jest skonfigurowanie usługi Application Gateway i usługi App Service, aby nie zastąpić nazwy hosta. Postępuj zgodnie z instrukcjami dla sekcji "Domena niestandardowa (zalecana)" w temacie Konfigurowanie usługi App Service z usługą Application Gateway

Rozważ zastosowanie innego obejścia (na przykład ponownego zapisania nagłówka Location zgodnie z poniższym opisem) po ocenie implikacji zgodnie z opisem w artykule: Zachowaj oryginalną nazwę hosta HTTP między zwrotnym serwerem proxy i aplikacją internetową zaplecza. Implikacje te obejmują potencjalne pliki cookie związane z domeną i bezwzględne adresy URL spoza nagłówka lokalizacji, które pozostaną uszkodzone.

Obejście: ponowne zapisywanie nagłówka Location

Ostrzeżenie

Ta konfiguracja ma ograniczenia. Zalecamy przejrzenie implikacji używania różnych nazw hostów między klientem a usługą Application Gateway i między usługą Application i App Service w zapleczu. Aby uzyskać więcej informacji, zapoznaj się z artykułem w Centrum architektury: Zachowywanie oryginalnej nazwy hosta HTTP między zwrotnym serwerem proxy i aplikacją internetową zaplecza

Ustaw nazwę hosta w nagłówku lokalizacji na nazwę domeny bramy aplikacji. W tym celu utwórz regułę ponownego zapisywania z warunkiem, który ocenia, czy nagłówek lokalizacji w odpowiedzi zawiera azurewebsites.net. Musi również wykonać akcję, aby ponownie napisać nagłówek lokalizacji, aby mieć nazwę hosta bramy aplikacji. Aby uzyskać więcej informacji, zobacz instrukcje dotyczące ponownego zapisywania nagłówka lokalizacji.

Uwaga

Obsługa ponownego zapisywania nagłówka HTTP jest dostępna tylko dla Standard_v2 i WAF_v2 jednostki SKU usługi Application Gateway. Zalecamy migrację do wersji 2 na potrzeby ponownego zapisywania nagłówka i innych zaawansowanych funkcji , które są dostępne dla jednostki SKU w wersji 2.

Następne kroki

Jeśli powyższe kroki nie rozwiązały problemu, otwórz bilet pomocy technicznej.