Introduzione ad IIS7
Piergiorgio Malusardi
IT Pro Evangelist
[email protected]
http://blogs.technet.com/pgmalusardi
Agenda
•
•
•
•
•
|
Miglioramenti in IIS 7
Introduzione all’estensibilità in IIS 7
Usare il sistema di configurazione di IIS 7
Gestione di IIS 7
Troubleshooting in IIS 7
[email protected] |
Revisione dei pilastri di IIS 6
Sicurezza
Disponibilità
|
Sicuro per default
Sicuro per design
Sicuro nel deployment
Architettura fault tolerant
Controllo dello stato di salute
Accodamento intelligente
Scalabilità
Scale up/scale out
Cache in kernel-mode
Piattaforma applicativa integrata
Gestione
Configurazione basata su XML
Amministrazione via command line
Amministrazione da remoto
[email protected] |
I pilastri di IIS 7 – il livello successivo
IIS 7
Scalabile
Disponibile
Sicuro
|
+
Sicurezza
Web server modulare e personalizzabile
Ridotta necessità di patch
Funzionalità URLScan integrata
+
Estensibilità
Nuove API Win32
Supporto integrato per IHttpModules (ASP.NET)
+
Configurazione
Configurazione distribuita e delegabile
Estensibilità (schema)
Configurazione integrata per piattaforma web
+
Gestione
IIS Manager innovativo
Amministrazione via command line
Amministrazione remota via HTTP /HTTPS
+
Diagnostica
Nuove API per lo stato del server
Failed Request Tracing
Diagnostica integrata di IIS e ASP.NET
[email protected] |
Sicurezza e IIS 7
• WEB server personalizzabile e modulare
– Sottile ed efficiente
•
Installazione dei soli componenti necessari
•
Riduzione al minimo della superficie di attacco
– Cinque volte più granulare delle precedenti versioni di IIS
• Riduzione della necessità di gestione delle patch
– Patch installate sulla base dei componenti presenti
– Se non lo installi non lo devi aggiornare
• URLScan integrato
|
[email protected] |
Immagine in memoria di IIS 6
InetInfo
WWW Service
FTP
Admin Tools
Scripts Directory
Remote Desktop ActiveX
Printers Virtual Directory
FrontPage 2000 Srv Ext
|
[email protected] |
Common Files
Immagine in memoria di IIS 7 – Modularità
Extensibility
Health and
BasicAuthModule
Diagnostics
FTP Service
FTP Server
FTP Management
DigestAuthModule
NetFxExtensibility
WindowsAuthModule
ISAPIModule
HttpLoggingModule
CertificateAuthModule
ISAPIFilterModule
CustomLoggingModule
Performance
AnonymousAuthModule
CGIModule
RequestMonitorModule
Static Compression
IPSecurityModule
ServerSideIncludeModule
HTTPTracingModule
Dynamic Compression
UrlAuthorizationModule
ASP
ODBCLogging
RequestFilteringModule
ASP.NET
LoggingLibraries
System Management
ManagementConsole
ManagementScripting
Core Web Server
StaticFileModule
HttpRedirect
DefaultDocumentModule
DirectoryListingModule
CustomErrorModule
ManagementService
Metabase
WMICompatibility
LegacyScripts
ProcessModel
|
NetFxEnvironment
[email protected] |
ConfigurationAPI
LegacySnap-in
Static
Static
& ASP
WebWeb
Server
Server
AuthN/AuthZ
Rivisitazione della configurazione di default dei moduli
Rimozione di tutti i moduli
Costruzione di un server personalizzato
DEMO:
CREAZIONE DI UN SERVER WEB
LEGGERO
Agenda
•
•
•
•
•
|
Miglioramenti in IIS 7
Introduzione all’estensibilità in IIS 7
Usare il sistema di configurazione di IIS 7
Gestione di IIS 7
Troubleshooting in IIS 7
[email protected] |
Estensibilità in IIS 6
• Internet Server API (ISAPI)
– Filtri ISAPI:
•
•
•
Possono essere globali o per sito
Consentono la modifica di richieste a runtime
Solo codice nativo
– Estensioni ISAPI
• Trappole di ISAPI
– Curva di apprendimento ripida sia per nuovi sviluppatori sia
per chi ha esperienza
– Non c’è supporto per il managed code
– Insieme di API chiuse e statiche non facilmente espandibili
da una release all’altra
|
[email protected] |
Pipeline delle richieste di IIS 6
w3wp.exe
CGI
Determine
Handler
Static
File
ISAPI
Logging
Url map
End req
begin req
Update req cache
Auth’c req
Rel req state
Custom Errors
Resolve cache
Compression
Handler map
Handler exec
ISAPI Filter Notification
Url Map
IHttpHandlers
Auth Req
Log
Pre-proc header
End net session
http.sys
|
IHttpModule Events
Auth’z req
Authentication
w3svc
aspnet_isapi.dll
[email protected] |
Trace.axd
PageHandler
Pipeline unificata delle richieste in IIS 7
Native
Modules
End
IHttpModule
Log
native modules
Update cache
managed modules
Release state
Execute handler
Static
File
Pre-execute handler
ISAPI
Acquire state
Native
Handler
Map handler
was
Basic
Anon
Windows
Resolve cache
Authenticate
http.sys
[email protected] |
Url Auth’z
*.aspx
Role Mgr
Trace.axd
Forms
IHttpHandler
Authorize
Begin
|
CGI
Estensibilità di IIS 7
•
Server
– Nuove API native Win32 (le stesse usate dal team di IIS)
– Pieno supporto per ASP.NET 2.0
•
Configurazione
– Schema in XML completamente estensibile
•
IIS Manager (interfaccia utente)
– Capacità di IIS Manager estensibili via .NET 2.0
•
Diagnostica
– Aggiunta dei propri eventi direttamente nella pipeline di IIS
|
[email protected] |
Scrittura di un modulo per la pipeline
Aggiunta del tracing al modulo
Uso del tracing con il modulo
DEMO:
ESTENSIONE DELLA PIPELINE E
DELLA DIAGNOSTICA DI IIS 7
Agenda
•
•
•
•
•
|
Miglioramenti in IIS 7
Introduzione all’estensibilità in IIS 7
Usare il sistema di configurazione di IIS 7
Gestione di IIS 7
Troubleshooting in IIS 7
[email protected] |
Nuovo sistema di configurazione di IIS 7
•
Eliminazione del metabase
•
I nomi delle proprietà sono uguali a quelli nel metabase
–
Supporto per applicazioni che si aspettano una configurazione basata su metabase
•
Forte tipizzazione
•
File centralizzato: ApplicationHost.config
– Schema fortemente tipizzato
– Uso della semantica di ASP.NET (la stessa di web.config)
•
Configurazione distribuita
– Impostazioni di default in ApplicationHost.config
– Impostazione dei siti o delle applicazioni in Web.config
– Controllo delle impostazioni delegabile
– I file config contengono la configurazione attiva
|
[email protected] |
Configurazione di IIS 6: Metabase
Metabase.xml
<IIsWebService
Location ="/LM/W3SVC"
ScriptMaps=".asp,D:\WINDOWS\system32\inetsrv\asp.dll,5,GET,HEAD,POST
.idc,D:\WINDOWS\system32\inetsrv\httpodbc.dll,5,GET,POST
…
.shtml,D:\WINDOWS\system32\inetsrv\ssinc.dll,5,GET,POST”
>
</IIsWebService>
<IIsWebVirtualDir Location ="/LM/W3SVC/1/ROOT“
ScriptMaps=".asp,D:\WINDOWS\system32\inetsrv\asp.dll,5,GET,HEAD,POST
.idc,D:\WINDOWS\system32\inetsrv\httpodbc.dll,5,GET,POST
.shtml,D:\WINDOWS\system32\inetsrv\ssinc.dll,5,GET,POST
.aspx,D:\WINDOWS\Microsoft.NET\Framework\v2.0.x86chk
…
\aspnet_isapi.dll,1,GET,HEAD,POST,DEBUG”
</IIsWebVirtualDir>
|
[email protected] |
>
File di configurazione di IIS 7
ApplicationHost.config (tutto il server web)
<handlers>
<add name="ASPClassic" path= "*.asp" verb="GET,HEAD,POST“
modules=“ISAPIModule”
scriptProcessor=“%windir%\system32\inetsrv\asp.dll
resourceType=“File” />
</handlers>
Web.config (siti, applicazioni e directory virtuali)
<handlers>
<add name=“PageHandlerFactory-Integrated” path=“*.aspx“
verb="GET,HEAD,POST,DEBUG“
type=“System.Web.UI.PageHandlerFactory”
preCondition=”integratedMode” />
<handlers>
|
[email protected] |
Sistema di configurazione distribuita di IIS 7
• Insieme di azioni ben definite: add, remove, clear
• Modifica delle sole opzioni che non si vogliono
ereditare
|
[email protected] |
Gerarchia dei file di configurazione
Amministratori Windows
applicationHost.config
Impostazioni principali di IIS 7
Amministratori di siti Web
Sito Web 1
web.config
[email protected] |
web.config
web.config
App 1
web.config
App 2
Amministratori di
applicazioni
|
Sito Web 2
Creazione di un nuovo sito Web
Controllo della delega delle configurazione dei siti in IIS
DEMO:
USO DEI FILE DI CONFIGURAZIONE
PER CONTROLLARE LA DELEGA
Configurazione di IIS 7
• Delega delle impostazioni agli sviluppatori
• Distribuzione della configurazione con i contenuti
usando XCOPY
• Unico insieme di API di configurazione per l’intera
piattaforma Web
• Schema e file di configurazione puliti e ben
schematizzati
• Ampia estensibilità (copia dei file di schema in un folder)
|
[email protected] |
Agenda
•
•
•
•
•
|
Miglioramenti in IIS 7
Introduzione all’estensibilità in IIS 7
Usare il sistema di configurazione di IIS 7
Gestione di IIS 7
Troubleshooting in IIS 7
[email protected] |
Gestione di IIS 7 : IIS Manager
• Configurazione delle impostazioni di IIS
(.NET,ASP.NET, IIS)
• Installazione e rimozione di funzionalità di IIS
• Controllo della delega
• Amministrazione da remoto
• Estensibile
|
[email protected] |
Gestione di IIS 7 : IIS Manager
• Wizard per la completa esecuzione di task
comuni
• Delega a utenti Windows e Non-Windows
• Supporto avanzato per le comuni configurazioni
di ASP.NET
• Supporto basato su wizard delle funzioni di
troubleshooting
|
[email protected] |
Gestione di IIS 7 : WMI Provider
• Pieno supporto per il nuovo sistema di configurazione
• Estensibile (aggiungibile supporto per i propri moduli)
Set oService = GetObject("winmgmts:root\WebAdministration")
' Create binding for site
Set oBinding = oService.Get("BindingElement").SpawnInstance_
oBinding.BindingInformation = "*:80:www.site.com"
oBinding.Protocol = "http"
' Create site
oService.Get("Site").Create "NewSite", array(oBinding), "C:\sites"
' Create application
oService.Get("Application").Create "/NewApplication","NewSite",
"C:\sites\NewApplication"
|
[email protected] |
Gestione di IIS 7: Appcmd.exe
• Accesso veloce ed efficiente alla configurazione di IIS 7
C:\> appcmd list sites
C:\> appcmd list requests
SITE "Default Web Site"
REQUEST "fb0000008000000e" (url:GET
(id:1,bindings:HTTP/*:80:,state:Started)
/wait.aspx?time=10000,time:4276 msec,client:localhost)
SITE "Site1" (id:2,bindings:http/*:81:,state:Started)
SITE "Site2" (id:3,bindings:http/*:82:,state:Stopped)
• Emula i file *.vbs di IIS 6
• Supporto integrato al “pipe”
|
[email protected] |
Gestione di IIS 7: Compatibilità
• Supportati script WMIv2 e ADSI
• Installazione della compatibilità
con il Metabase
• Chiamate ad Admin Base Object
(ABO) rimappate sul nuovo
sistema di configurazione
• Si appoggia al servizio
Inetinfo.exe
|
[email protected] |
DEMO:
AMMINISTRAZIONE DA COMMAND
LINE
Agenda
•
•
•
•
•
|
Miglioramenti in IIS 7
Introduzione all’estensibilità in IIS 7
Usare il sistema di configurazione di IIS 7
Gestione di IIS 7
Troubleshooting in IIS 7
[email protected] |
Runtime Control and Status API
• Disponibilità delle informazioni di stato a run-time
– Processi in esecuzione
– Application Pool Process Id (PID)
– Richieste in esecuzione
• Possibile controllo a Run-time
– Caricamento degli Application Domain
– Avvio e arresto dei siti in real-time
• Accesso via tool di IIS e codice managed
|
[email protected] |
Failed Request Event Buffering
•
Traccia tutte le richieste
attraverso la pipeline di
IIS
•
Abilitata in automatico
•
Facile identificazione
delle richieste che
falliscono o sono bloccate
•
|
Fornisce tempo passato in
ogni modulo >
identificazione delle
richieste “long running”
[email protected] |
Begin Request
Read Configuration
Authenticate
Authorize
Cached
ISAPI Filter
Determine Handler
Troubleshooting in IIS 7: custom error
• Custom error
– Specifici per i diversi linguaggi (Accetta Encoding)
– Diversi per accessi da remoti o da “Localhost”
• Informazioni dettagliate
– Tempo
– URL
– Modulo corrente
– Stato e sub-stato della risposta
– Altre informazioni (passi per correggere l’errore)
|
[email protected] |
Mettiamo tutto insieme
Diagnostica
Gestione
Configurazione
Estensibilità
Scalabilità
• Informazioni di stato esposte in real-time via script e
managed code
•• IIS
Manager
costruito
zero
Vista
delle richieste
in da
esecuzione
in IIS Manager o
• negli
Supporto
integrato
alla
delega
script
•• Supporto
per
utenti
Windows
e non-Windows
Metabase
eliminato
Failed Request
Tracing:
diagnostica
con Zero-repro
•• Supporto
per l’amministrazione
remota
Configurazione
fortemente schematizzata
•• Completamente
estensibilee delegabile integrata
Configurazione distribuita
• Massima estensibilità
• Pieno supporto all’uso di Abo delle precedenti versioni
• Supporto al codice nativo e Managed
• Estensibilità del core server, WMI, interfaccia utente e
diagnostica
Disponibilità
Sicurezza
|
• Web server fortemente personalizzati
• Alleggerimento dei processi per minimizzare il footprint
• Filtro forte delle richieste con l’inserimento di URLScan
[email protected] |
Sommario della sessione
•
•
•
•
|
Estensione di IIS 7
Uso del nuovo sistema di configurazione
Uso dei nuovi tool di gestione
Troubleshooting dei problemi in IIS 7
[email protected] |
Per maggiori informazioni
Sito TechNet:
www.microsoft.com/technet
Sito ufficiale di IIS:
www.iis.net
|
[email protected] |
© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks
and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of
Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to
be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Scarica

Piergiorgio Malusardi