Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
di IIS Team
Informazioni generali
In questo argomento viene illustrato come configurare il routing delle richieste dell'applicazione per bilanciare il carico delle richieste HTTP per ottenere disponibilità elevata e scalabilità. La procedura dettagliata evidenzia anche un paio di funzionalità di base sul modo in cui Il routing delle richieste di applicazioni monitora l'integrità dei server di contenuto e affinizza le richieste da un client a un server di contenuto.
Obiettivo
Per bilanciare il carico delle richieste HTTP in diversi server di contenuto usando il routing delle richieste di applicazione, come illustrato di seguito:
Prerequisiti
Questa procedura dettagliata richiede i prerequisiti seguenti:
- IIS 7.0 o versione successiva in Windows 2008 (qualunque SKU) o versione successiva.
- Moduli dipendenti e versione 1 del routing delle richieste delle applicazioni Microsoft.
- Almeno due server di contenuto con siti e applicazioni funzionanti.
Seguire i passaggi descritti in questo documento per installare Il routing delle richieste di applicazione.
Un altro prerequisito è che il lettore ha definito e configurato una server farm usando i passaggi descritti in Definire e configurare un gruppo di server ARR (Application Request Routing).
Passaggio 1- Verificare le regole di riscrittura URL
A condizione che la server farm sia stata creata usando i passaggi descritti in Definire e configurare un gruppo di server ARR (Application Request Routing), le regole di riscrittura URL sono già state create per un semplice scenario di bilanciamento del carico.
Per verificare le regole di riscrittura url usando l'interfaccia utente:
- Avvia Gestione di IIS.
- Selezionare la server farm myServerFarm creata in Definire e configurare un gruppo di server ARR (Application Request Routing).
- Vengono visualizzate le icone seguenti:
- Fare doppio clic su Regole di routing.
- Verificare che la casella di controllo Usa riscrittura URL per controllare le richieste in ingresso sia selezionata.
- L'offload SSL è abilitato per impostazione predefinita. Quando questa funzionalità è abilitata, tutte le comunicazioni tra il server ARR e i server applicazioni vengono eseguite in testo non crittografato, anche per le richieste HTTPS dai client al server ARR. Quando sia il server ARR che i server applicazioni vengono distribuiti all'interno di una rete attendibile, ad esempio all'interno dello stesso data center, l'abilitazione dell'offload SSL non sacrifica la sicurezza. Inoltre, l'abilitazione di questa funzionalità può contribuire ulteriormente a ottimizzare le risorse del server nei server applicazioni, poiché non è necessario dedicare cicli di crittografia e decrittografia di richieste e risposte.
Per disabilitare l'offload SSL, deselezionare la casella di controllo Abilita offload SSL e quindi fare clic su Applica. - Aprire un browser e inviare diverse richieste al server ARR.
- Per verificare che le richieste siano bilanciate equamente tra i server applicazioni, selezionare myServerFarm. Fare doppio clic su Monitoraggio e gestione.
- Nella visualizzazione dashboard verificare che le richieste vengano distribuite uniformemente.
Per verificare le regole di riscrittura URL tramite la riga di comando:
Aprire un prompt dei comandi con privilegi di amministratore .
Navigare verso
%windir%\system32\inetsrv.Per verificare che le regole di riscrittura URL siano state create correttamente, immettere appcmd.exe list config -section:system.webServer/rewrite/globalRules. Viene restituito il set globalRules, che è simile al seguente:
<system.webServer> <rewrite> <globalRules> <rule name="ARR_myServerFarm_loadbalance" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> </conditions> <action type="Rewrite" url="http://myServerFarm/{R:0}" /> </rule> </globalRules> </rewrite> </system.webServer>Per disabilitare l'offload SSL, rimuovere prima tutte le regole di riscrittura URL:
appcmd.exe clear config -section:system.webServer/rewrite/globalRulesCreare quindi le regole di riscrittura URL per inoltrare il traffico HTTPS. In particolare, con questa regola, ARR inoltra le richieste usando SSL se le richieste in ingresso sono HTTPS:
appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance_SSL',patternSyntax='Wildcard',stopProcessing='True']" /commit:apphost appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance_SSL',patternSyntax='Wildcard',stopProcessing='True'].match.url:"*" /commit:apphost appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance_SSL',patternSyntax='Wildcard',stopProcessing='True'].conditions.[input='{HTTPS}',pattern='On']" /commit:apphost appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance_SSL',patternSyntax='Wildcard',stopProcessing='True'].action.type:"Rewrite" /[name='ARR_myServerFarm_loadbalance_SSL',patternSyntax='Wildcard',stopProcessing='True'].action.url:"https://myServerFarm/{R:0}" /commit:apphostCreare infine le regole di riscrittura URL per inoltrare il traffico HTTP in testo non crittografato ai server applicazioni:
appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True']" /commit:apphost appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].match.url:"*" /commit:apphost appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.type:"Rewrite" /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.url:"http://myServerFarm/{R:0}" /commit:apphostPer verificare che le regole di riscrittura URL siano state create correttamente con l'offload SSL disabilitato, immettere appcmd.exe list config -section:system.webServer/rewrite/globalRules. Restituisce le globalRules, che sono simili alle seguenti:
<system.webServer> <rewrite> <globalRules> <rule name="ARR_myServerFarm_loadbalance_SSL" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> <add input="{HTTPS}" pattern="On" /> </conditions> <action type="Rewrite" url="https://myServerFarm/{R:0}" /> </rule> <rule name="ARR_myServerFarm_loadbalance" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> </conditions> <action type="Rewrite" url="http://myServerFarm/{R:0}" /> </rule> </globalRules> </rewrite> </system.webServer>
Passaggio 2: Configurare il monitoraggio del controllo dello stato di salute
Application Request Routing monitora l'integrità dei server di contenuto in due modi:
- Attraverso i dati sul traffico in tempo reale
- Tramite un test esplicito dell'URL
Il test del traffico in tempo reale viene eseguito automaticamente per impostazione predefinita quando le richieste vengono effettuate al routing delle richieste dell'applicazione. Il test esplicito dell'URL è un test aggiuntivo che può essere usato con il test del traffico in tempo reale. In questa sezione la procedura dettagliata illustra come configurare il test esplicito degli URL.
Per configurare il monitoraggio del controllo della salute usando l'interfaccia utente:
- Il test dell'URL richiede un URL specifico da testare. Per soddisfare questo requisito, usare Blocco note per creare un file di testo denominato healthCheck.txt contenente la frase "I am healthy".
- Posizionare il file healthCheck.txt nei server applicazioni.
- Verificare che healthCheck.txt sia visualizzato correttamente aprendo la pagina in un browser.
- In Gestione di IIS, selezionare la server farm myServerFarm. Vengono visualizzate le icone seguenti:
- Doppio clic su Test di salute.
- Immettere
http://(server name or FQDN of ARR server)/healthCheck.txtcome valore URL . - Immettere sano come valore di corrispondenza della risposta. La verifica di corrispondenza della risposta è un test facoltativo per garantire che il corpo della risposta contenga la stringa attesa. In questo caso, poiché healthCheck.txt contiene la frase "I am healthy.", la corrispondenza di risposta cercherà la parola "healthy".
- Fare clic su Applica per salvare le modifiche.
- Per verificare la funzionalità del monitoraggio del controllo integrità, arrestare il sito monitorato su uno dei server di applicazione. Poiché il valore Interval (seconds) è impostato su 30 secondi, attendere 30 secondi per il controllo integrità successivo.
- Dopo aver aspettato 30 secondi, inviare diverse richieste al server ARR.
- Per verificare che tutte le richieste vengano inviate ai server integri, fare doppio clic su Monitoraggio e gestione e quindi aggiornare il dashboard usando il tasto F5. Si noti che le statistiche di runtime sono state reimpostate. Questo è intenzionale. È possibile inviare richieste aggiuntive e aggiornare il dashboard in base alle esigenze.
- Il monitoraggio dell'integrità viene usato anche per rilevare quando un server non integro diventa integro. Per verificare questa funzionalità, avviare il sito arrestato nel passaggio 9. Anche in questo caso, poiché il valore Intervallo (secondi) è impostato su 30 secondi, attendere 30 secondi per il controllo integrità successivo.
- Dopo aver aspettato 30 secondi, inviare diverse richieste al server ARR.
- Per verificare che le richieste vengano distribuite uniformemente tra i server, aggiornare il dashboard in Gestione IIS. Si noti che le statistiche di runtime sono state reimpostate. Questo è intenzionale. È possibile inviare richieste aggiuntive e aggiornare il dashboard in base alle esigenze.
Per configurare il monitoraggio della verifica dell'integrità tramite la riga di comando:
Aprire un prompt dei comandi con privilegi di amministratore .
Navigare verso
%windir%\system32\inetsrv.Per impostare l'URL su
http://(server name or FQDN of ARR server)/healthCheck.txtcon Sto bene. come stringa da trovare, immettere:appcmd.exe set config -section:webFarms /[name='myServerFarm1'].applicationRequestRouting.healthCheck.url:"http://(server name or FQDN of ARR server)/healthCheck.txt " /[name='myServerFarm1'].applicationRequestRouting.healthCheck.responseMatch:"I am healthy." /commit:apphost
Passaggio 3: Configurare l'affinità client
Application Request Routing fornisce una funzionalità di affinità client che assegna un client a un server di contenuti supportato da Application Request Routing per la durata di una sessione client. Quando questa funzionalità è abilitata, l'algoritmo di bilanciamento del carico viene applicato solo per la prima richiesta dal client. Da questo punto in poi, tutte le richieste successive dello stesso client verrebbero instradate allo stesso server di contenuto per la durata della sessione client. Questa funzionalità è utile se l'applicazione sul server dei contenuti è stateful e le richieste del client devono essere instradate allo stesso server dei contenuti perché la gestione della sessione non è centralizzata.
Per configurare l'affinità client usando l'interfaccia utente:
- Avvia Gestione di IIS.
- Selezionare la server farm myServerFarm creata in Definire e configurare un gruppo di server ARR (Application Request Routing).
- Vengono visualizzate le icone seguenti:
- Fare doppio clic su Affinità del server.
- Per abilitare l'affinità client, selezionare la casella di controllo Affinità client e quindi fare clic su Applica.
Application Request Routing usa un cookie per attivare l'affinità client. Il nome del cookie verrà usato per impostare il cookie nel client. Detto questo, il client deve accettare i cookie per il corretto funzionamento dell'affinità client. - Per verificare la funzionalità dell'affinità client, inviare diverse richieste al server ARR. Aggiornare il dashboard in Gestione IIS (monitoraggio e gestione). Verificare che le statistiche di runtime vengano modificate solo per uno dei server di applicazione a cui è diretta l'affinità del client. È possibile inviare richieste aggiuntive e aggiornare il dashboard in base alle esigenze.
Per configurare l'affinità client tramite la riga di comando:
Aprire un prompt dei comandi con privilegi di amministratore .
Navigare verso
%windir%\system32\inetsrv.Per abilitare l'affinità client, immettere:
appcmd.exe set config -section:webFarms /[name='myServerFarm1'].applicationRequestRouting.affinity.useCookie:"True" /commit:apphost
Passaggio 4 - Non consentire nuove connessioni
Non consentire nuove connessioni al server è un modo efficace per rimuovere il server dall'ambiente della server farm. È più significativo quando la funzionalità di affinità client è in uso, perché il routing delle richieste dell'applicazione rispetta le sessioni esistenti quando non consente nuove connessioni. Ovvero, quando un client è affinizzato al server che non consente nuove connessioni, il client continuerà a essere instradato allo stesso server e, pertanto, non vi è alcun impatto sul client. Tuttavia, nessun nuovo client verrà instradato al server che non consente nuove connessioni.
Per impedire nuove connessioni tramite l'interfaccia utente:
- Usando la configurazione del passo 3 precedente, identificare il server a cui il client è stato associato.
- Selezionare la server farm myServerFarm creata in Definire e configurare un gruppo di server ARR (Application Request Routing).
- Vengono visualizzate le icone seguenti:
- Fare doppio clic su Monitoraggio e gestione.
- Selezionare il server al quale il tuo client è associato. Nel riquadro Azioni fare clic su Non consentire nuove connessioni.
- Nella finestra di dialogo di conferma fare clic su Sì.
- Per verificare che le richieste dei client continuino a essere instradate al server affinizzato, che ora non consente nuove connessioni, inviare diverse richieste al server ARR. Aggiornare il dashboard in Gestione IIS. Verificare che le statistiche di runtime vengano modificate solo per il server a cui il client è affinitizzato. È possibile inviare richieste aggiuntive e aggiornare il dashboard in base alle esigenze.
- Per verificare che i nuovi client non vengano instradati al server che non consente nuove connessioni, rimuovere il cookie impostato da Application Request Routing chiudendo e riavviando il browser.
- Inviare diverse richieste al server ARR. Aggiornare il dashboard in Gestione IIS. Verificare che le statistiche di runtime vengano modificate solo per i server disponibili. In particolare, verificare che le statistiche di runtime per il server che non consentano nuove connessioni non vengano modificate. È possibile inviare richieste aggiuntive e aggiornare il dashboard in base alle esigenze.
Sommario
È stata configurata una serie di impostazioni per il routing delle richieste di applicazione per aumentare il numero di istanze e distribuire il carico in modo uniforme. Per funzionalità di routing più avanzate che usano il routing delle richieste dell'applicazione, vedere Uso del routing delle richieste dell'applicazione.