Configurare il servizio app con il gateway applicazione

Il gateway applicazione consente di usare un'app Servizio app o un altro servizio multi-tenant come membro del pool back-end. Questo articolo descrive come configurare un'app Servizio app con il gateway applicazione. La configurazione per il gateway applicazione varia a seconda della modalità di accesso al servizio app:

  • La prima opzione usa un dominio personalizzato sia nel gateway applicazione che nel servizio app nel back-end.
  • La seconda opzione consiste nel fare in modo che il servizio app acceda al servizio app usando il relativo dominio predefinito, con suffisso ".azurewebsites.net".

Questa configurazione è consigliata per gli scenari di livello di produzione e soddisfa la procedura di non modificare il nome host nel flusso di richiesta. È necessario disporre di un dominio personalizzato (e del certificato associato) per evitare di dover fare affidamento sul dominio predefinito ".azurewebsites".

Associando lo stesso nome di dominio sia al gateway applicazione che al servizio app nel pool back-end, il flusso di richiesta non deve eseguire l'override del nome host. L'applicazione Web back-end vedrà l'host originale usato dal client.

Scenario overview for Application Gateway to App Service using the same custom domain for both

Questo articolo descrive come:

  • Configurare DNS
  • Aggiungere il servizio app come pool back-end al gateway applicazione
  • Configurare le impostazioni HTTP per la connessione al servizio app
  • Configurare un listener HTTP
  • Configurare una regola di routing delle richieste

Prerequisiti

Configurazione del DNS

Nel contesto di questo scenario, DNS è rilevante in due posizioni:

  • Nome DNS, che l'utente o il client sta usando per il gateway applicazione e ciò che viene visualizzato in un browser
  • Nome DNS, usato internamente dal gateway applicazione per accedere al servizio app nel back-end

Indirizzare l'utente o il client al gateway applicazione usando il dominio personalizzato. Configurare il DNS usando un alias CNAME a cui punta il DNS per il gateway applicazione. L'indirizzo DNS del gateway applicazione viene visualizzato nella pagina di panoramica dell'indirizzo IP pubblico associato. In alternativa, creare un record A che punta direttamente all'indirizzo IP. (Per il gateway applicazione V1, l'indirizzo VIP può cambiare se si arresta e si avvia il servizio, che rende questa opzione indesiderata).

Il servizio app deve essere configurato in modo da accettare il traffico dal gateway applicazione usando il nome di dominio personalizzato come host in ingresso. Per altre informazioni su come eseguire il mapping di un dominio personalizzato al servizio app, vedere Esercitazione: Eseguire il mapping di un nome DNS personalizzato esistente al servizio app di Azure Per verificare il dominio, il servizio app richiede solo l'aggiunta di un record TXT. Non è necessaria alcuna modifica nei record CNAME o A. La configurazione DNS per il dominio personalizzato rimarrà indirizzata al gateway applicazione.

Per accettare connessioni al servizio app tramite HTTPS, configurarne l'associazione TLS. Per altre informazioni, vedere Proteggere un nome DNS personalizzato con un'associazione TLS/SSL nel servizio app di Azure Configurare il servizio app per eseguire il pull del certificato per il dominio personalizzato da Azure Key Vault.

Aggiungere il servizio app come pool back-end

  1. Nel portale di Azure selezionare il gateway applicazione.

  2. In Pool back-end, selezionare il pool back-end.

  3. In Tipo di destinazione, selezionare Serviziapp.

  4. In Destinazione selezionare il servizio app.

    App service backend

    Nota

    L'elenco a discesa popola solo i servizi app che si trovano nella stessa sottoscrizione del gateway applicazione. Se si vuole usare un servizio app che si trova in una sottoscrizione diversa da quella in cui si trova il gateway applicazione, invece di scegliere Servizi app nell'elenco a discesa Destinazioni, scegliere indirizzo IP o nome host e immettere il nome host (example.azurewebsites.net) del servizio app.

  5. Seleziona Salva.

Modificare le impostazioni HTTP per il servizio app

È necessaria un'impostazione HTTP che indica al gateway applicazione di accedere al back-end del servizio app usando il nome di dominio personalizzato. L'impostazione HTTP userà per impostazione predefinita il probe di integrità predefinito. Mentre i probe di integrità predefiniti inoltrano le richieste con il nome host in cui viene ricevuto il traffico, i probe di integrità utilizzeranno 127.0.0.1 come nome host al pool back-end perché non è stato definito in modo esplicito alcun nome host. Per questo motivo, è necessario creare un probe di integrità personalizzato configurato con il nome di dominio personalizzato corretto come nome host.

Ci si connetterà al back-end usando HTTPS.

  1. In Impostazioni HTTP selezionare un'impostazione HTTP esistente o aggiungerne una nuova.
  2. Quando si crea una nuova impostazione HTTP, assegnare un nome
  3. Selezionare HTTPS come protocollo back-end desiderato usando la porta 443
  4. Se il certificato è firmato da un'autorità nota, selezionare "Sì" per "Certificato CA noto utente". In alternativa, aggiungere certificati radice di autenticazione/attendibili dei server back-end
  5. Assicurarsi di impostare "Esegui override con il nuovo nome host" su "No"
  6. Selezionare il probe di integrità HTTPS personalizzato nell'elenco a discesa "Probe personalizzato".

Configure H T T P Settings to use custom domain towards App Service backend using No Override

Configurare un listener HTTP

Per accettare il traffico è necessario configurare un listener. Per altre informazioni in merito, vedere Configurazione del listener del gateway applicazione.

  1. Aprire la sezione "Listener" e scegliere "Aggiungi listener" oppure fare clic su un listener esistente da modificare
  2. Per un nuovo listener: assegnargli un nome
  3. In "IP front-end" selezionare l'indirizzo IP su cui rimanere in ascolto
  4. In "Porta" selezionare 443
  5. In "Protocollo" selezionare "HTTPS"
  6. In "Scegliere un certificato" selezionare "Scegliere un certificato da Key Vault". Per altre informazioni, vedere Uso di Key Vault in cui sono disponibili altre informazioni su come assegnare un'identità gestita e fornire diritti all'insieme di credenziali delle chiavi.
    1. Assegnare un nome al certificato
    2. Selezionare l'identità gestita
    3. Selezionare l'insieme di credenziali delle chiavi da dove ottenere il certificato
    4. Selezionare il certificato
  7. In "Tipo listener", selezionare "Basic"
  8. Fare clic su "Aggiungi" per aggiungere il listener

Add a listener for H T T P S traffic

Configurare la regola di routing delle richieste

Usando il pool back-end configurato in precedenza e le impostazioni HTTP, è possibile configurare la regola di routing delle richieste per accettare il traffico da un listener e instradarlo al pool back-end usando le impostazioni HTTP. Per questo, assicurarsi di disporre di un listener HTTP o HTTPS non già associato a una regola di routing esistente.

  1. In "Regole", fare clic per aggiungere una nuova "Regola di routing della richiesta"
  2. Specificare la regola con un nome
  3. Selezionare un listener HTTP o HTTPS non ancora associato a una regola di routing esistente
  4. In "Destinazioni back-end" scegliere il pool back-end in cui è stato configurato il servizio app
  5. Configurare le impostazioni HTTP con cui il gateway applicazione deve connettersi al back-end del servizio app
  6. Selezionare "Aggiungi" per salvare questa configurazione

Add a new Routing rule from the listener to the App Service Backend Pool using the configured H T T P Settings

Test in corso

Prima di eseguire questa operazione, assicurarsi che l'integrità del back-end sia integra:

Aprire la sezione "Integrità back-end" e verificare che la colonna "Stato" indichi la combinazione per l'impostazione HTTP e il pool back-end come "Integro".

Check backend health in Azure portal

Passare ora all'applicazione Web usando il dominio personalizzato associato sia al gateway applicazione che al servizio app nel back-end.

Limita accesso

L'app Web distribuita in questi esempi usa indirizzi IP pubblici a cui è possibile accedere direttamente da Internet. Questo facilita la risoluzione dei problemi quando si sta imparando una nuova funzionalità e si provano le novità. Ma se si prevede di distribuire una funzionalità in produzione, sarà necessario aggiungere altre restrizioni. Valutare le opzioni seguenti: