IIS 7 è provvisto di una serie di funzionalità per la diagnostica e il monitor delle richieste. Grazie a questa funzionalità è possibile primariamente, monitorare specifiche richieste in base a:
- codice HTTP restituito, come ad esempio
404
e/o500
o un range di valori tra questi - richieste HTTP che impiegano più di un certo tempo per essere eseguite
Una volta individuata la specifica richiesta HTTP da tracciare, IIS è in grado di monitorare tutto ciò che accade nella pipeline di esecuzione della richiesta, in base a specifici provider installati. Queste informazioni in genere sono preziose per compiere analisi per il troubleshooting o per identificare colli bottiglia ed eseguire analisi delle performance oppure per scoprire problemi di autenticazione e/o autorizzazione. Il modulo di URL Rewrite è integrato in questa pipeline, quindi vengono tracciate tutte le sue operazioni che esegue, come la valutazione di una regola di routing e la relativa azione intrapresa.
Il Failed Request Tracing va installato dal pannello di controllo di Windows che avete visto all'inizio di questa guida, nella sezione Health and Diagnostic
, selezionare Tracing
. Una volta installato deve essere abilitato, operazione che può essere compiuta dal pannello Actions
, nella console di IIS, e poi premendo il link come mostrato in figura:
Per poi decidere quale directory conterrà i file generati ed il numero di trace. Generalmente abbiamo un singolo file di trace per ogni richiesta HTTP. Lo scopo di questo sistema è quello di raccogliere il maggior numero di informazioni su una richiesta che si verifica in condizioni particolari. Qui non ci interessa, quindi, avere un elenco di tutte le richieste che arrivano al server Web, questo tipo di richieste viene tracciato comunque in un altro file e ha una specifica configurazione a parte.
A questo punto dobbiamo definire le regole che discriminano le richieste che vogliamo analizzare. Per definirle ed ottenere i relativi file, torniamo alla console di IIS e selezioniamo l'icona Failed Request Tracing
.
Un wizard ci guiderà nella scelta del provider responsabile di tracciare le informazioni desiderate e la scelta delle condizioni per la generazione del trace.
Scegliamo ora tra i provider relativi al server WWW
quelli che hanno informazioni associate ai moduli ed in particolare a quello di URL Rewrite, come nella figura seguente:
Se ora eseguiamo una richiesta al server web in cui interviene il modulo di URL Rewrite sarà generato un file specifico, che tra le informazioni conterrà:
- Valutazione della regola di routing
- Pattern matching
- Azione intrapresa
La figura precedente mostra un esempio di come una regola venga valutata (punti dal 7 al 10) e come si presenta l'output del file generato per la specifica richiesta. Il file è un file XML che viene renderizzato in HTML grazie ad un template XSLT presente nella directory stessa in cui vengono generati i file e facilmente modificabile.
Conclusioni
Questa lezione conclude il capitolo relativo al modulo di URL Rewrite, in cui abbiamo visto come configurare e gestire regole di routing sia in ingresso al server Web, intercettando le richiesta, sia in uscita intercettando le risposte dal server, fino a modificare porzioni di markup in modo automatico, senza modifiche al codice PHP.
Le funzionalità di tracing, che abbiamo brevemente esaminato, ci permettono molto più del semplice tracciamento della valutazione delle regole di routing, ma quest'esempio può essere un utile spunto per approfondimenti ulteriori. Inoltre questo componente è in grado di tracciare una richiesta HTTP di qualsiasi tipo, sia per file PHP, come in questo esempio, ma anche per file HTML, ASP, ASP.NET o altri.