La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción Internet Information Services 7.0 (IIS 7)

Presentaciones similares


Presentación del tema: "Introducción Internet Information Services 7.0 (IIS 7)"— Transcripción de la presentación:

1 Introducción Internet Information Services 7.0 (IIS 7)
Iván González Vilaboa Develoment Advisor Microsoft MVP – Windows Server IIS Plain Concepts

2 Agenda Introducción Núcleo del servidor Web Extensibilidad
Configuración Administración Despliegue Seguridad Diagnóstico y resolución de problemas

3 Más fácil de administrar
IIS7 contiene docenas de nuevas características que permiten administrarlo de forma más fácil que nunca: Nuevo IIS7 Manager Failed Request Tracing Nueva consola en línea de comandos ... y mucho más! Delegación de la administración Arquitectura modular Administración con código manejado Errores detallados Nueva configuración basada en XML Despliegue de sitios con XCOPY Compatibilidad hacia atrás Nuevo proveedor WMI

4 Núcleo del servidor Web Procesado de peticiones en IIS 6
Implementación monolítica Instala todo o nada… Authentication NTLM Basic Anon Determine Handler CGI Static File ASP.NET ISAPI PHP Send Response Log Compress Extensión de la funcionalidad del servidor sólo a través de ISAPI…

5 Núcleo del servidor Web Procesado de peticiones en IIS 7
Authentication Authentication La funcionalidad del servidor se reparte en ~ 40 modulos... NTLM Basic Anon Authorization ResolveCache Determine Handler CGI Los módulos se conectan en un pipeline de peticiones genérico Static File ExecuteHandler ISAPI Los módulos extienden la funcionalidad del servidor a través de un API pública de módulos UpdateCache Send Response SendResponse Log Compress

6 Núcleo del servidor Web Muchos, muchos módulos
Instala, gestiona, y actualiza sólo los módulos que uses… Reduce la superficie de ataque Reduce la huella del servidor en memoria Proporciona mayor granularidad de control Permite reemplazar componentes del núcleo del servidor con nuestros propios componentes

7 Consejo Instalar de forma consistente el mismo conjunto de módulos…
Evitar: 503 “Service Unavailable” [el módulo está habilitado pero no instalado] La aplicación no funciona cómo se esperaba [web.config referencia un módulo que no está instalado] [un módulo inesperado entra en conflicto con un módulo personalizado]

8 Núcleo del servidor Web
Demo Núcleo del servidor Web

9 Extensibilidad Modelo nativo Modelo manejado API en C++
4/1/2017 7:02 PM Extensibilidad Authentication ... ExecuteHandler SendResponse HTTP Request Response Authorization UpdateCache ResolveCache Basic Modelo nativo API en C++ Modelo de objetos IIS Modelo manejado Continua usando los interfaces IHttpModule y IHttpHandler Podemos conectar handlers y módulos ASP.NET ya existentes © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

10 Extensibilidad Integración de ASP.NET en IIS 6
Implementación basada en ISAPI Sólo ve las peticiones ASP.NET Características duplicadas Send Response Log Compress NTLM Basic Determine Handler CGI Static File ISAPI Authentication Anon Forms Windows Map Handler ASPX Trace aspnet_isapi.dll

11 Extensibilidad Integración de ASP.NET en IIS 7
Basic Dos modos Clásico (se ejecuta como un ISAPI) El modo integrado Módulos .NET y handlers se conectan directamente en el pipeline Procesa todas las peticiones Anon Authentication Authorization ResolveCache aspnet_isapi.dll Static File Authentication ExecuteHandler Forms Windows ISAPI ASPX UpdateCache Map Handler Trace SendResponse Compress Log

12 Migrar al modo integrado
La configuración de los módulos y los Handler se ha movido de: system.web/httpHandlers → system.webServer\handlers system.web/httpModules → system.webServer\modules Buscar conflictos entre módulos en el procesado de las peticiones Establecer la precondición “managedHandler” para un módulo significa “ejecutar sólo para peticiones ASP.NET”

13 Demo Extensibilidad

14 Configuración La metabase se mueve a ficheros .config
El fichero principal de configuración es ahora applicationHost.config No más ficheros metabase.bin o metabase.xml ! Permite configurar propiedades de IIS y de ASP.NET en el mismo fichero Construida para ser simple, y con extensibilidad basada en un esquema

15 Configuración Mapa de la configuración
IIS + ASP.NET + .NET Framework Herencia… IIS ASP.NET applicationHost.config web.config .NET Framework \Windows\system32\inetsrv\applicationHost.config root web.config \Windows\Microsoft.NET\Framework\v \config\web.config machine.config \Windows\Microsoft.NET\Framework\v \config\machine.config root configuration web.config

16 Configuración Compatibilidad: ABO Mapper
Proporciona compatibilidad para: Scripts Herramientas en línea de comandos Llamadas nativas a ABO Sólo puede hacer lo que IIS 6 hace… No puede leer/escribir nuevas propiedades de IIS7 o acceder a los nuevos datos del runtime No puede leer/escribir las propiedades de ASP.NET o los ficheros web.config No se instala por defecto Los scripts existentes de ADSI/WMI/instalación no funcionarán sin esto applicationHost.config IISADMIN ABOMapper IIS6 ADSI Script

17 Configuración Replicar el contenido y la configuración
Bienvenido al mundo del despliegue XCOPY! Replicar la configuración de IIS en applicationHost.config… Cuenta built-in “Internet User”, no más SID’s específicos de la máquina Simplemente copiar los ficheros, no se necesitan herramientas en línea de comandos Ojo a la información específica de la máquina como IP’s y letras de unidad Replicar la configuracion de IIS en los ficheros web.config… XCOPY con la aplicación

18 Configuración Centralizar el contenido y la configuración
La configuración de IIS en los ficheros web.config se puede centralizar en un servidor de ficheros El sistema de ficheros de Vista/Longhorn proporciona: Client Side Caching (CSC) Proporciona una caché de disco local Distributed File System Replication (DFSR) Múltiples servidores de ficheros abstraidos en un sólo nombre de carpeta compartida Proporciona replicación de contenido

19 Configuración Delegación de configuración
Dos tipos de bloqueos de configuración: overrideMode (similar a "allowOverride") Bloqueo granular, e.j. lockItem, lockElements Por defecto… Todas las secciones de IIS bloqueadas (overrideMode=“Deny”) excepto: Documento por defecto, Navegación de directorios, Cabecera HTTP, Redirecciones HTTP, Validación Todas las secciones de .NET Framework / ASP.NET están no bloqueadas

20 Configuración El esquema de configuración
Podemos usar el fichero con el esquema para ver todas las posibilidades que nos ofrece la cofiguración: %windir%\system32\inetsrv\config\schema\IIS_schema.xml El esquema describe: Tipos de propiedades Valores por defecto Validaciones Etc. Nota: Los valores de configuración son case sensitive

21 consejo Determinar la política de bloqueo de la configuración …
Ser conservador al principio Desbloquear según sea necesario (bloquear más tarde puede romper las aplicaciones)

22 Demo Configuración

23 Administración Nuevo IIS7 Manager
Acceso remoto sobre HTTP, lo hace firewall friendly (La gestión remota no se instala por defecto) Soporta la gestión delegada de sitios y aplicaciones por parte de no administradores Proporciona un API manejada de extensibilidad para su personalización

24 Administración Herramientas de gestión IIS7
GUI Línea Comandos Script Código Manejado IIS Manager appcmd WMI (root\WebAdministration) Microsoft.Web.Administration Gestionar IIS y ASP.NET simultáneamente Ver datos del runtime: worker processes, appdomains, executing requests

25 Administración Scripting: Proveedor WMI de IIS6
Set oIIS = GetObject("winmgmts:root\MicrosoftIISv2") ' Crear binding para nuevo sitio Set oBinding = oIIS.Get("ServerBinding").SpawnInstance_ oBinding.IP = "" oBinding.Port = "80" oBinding.Hostname = "www.sitio.com" ' Crear un sitio y extraer el nombre del sitio como valor de retorno Set oService = oIIS.Get("IIsWebService.Name='W3SVC'") strSiteName = oService.CreateNewSite("NuevoSitio", array(oBinding), "C:\inetpub\wwwroot") Set objPath = CreateObject("WbemScripting.SWbemObjectPath") objPath.Path = strSiteName strSitePath = objPath.Keys.Item("") Set oSite = oIIS.Get("IIsWebServer.Name='" & strSitePath & "'") oSite.Start ' Crear el vdir para nuestra aplicacion Set oVDirSetting = oIIS.Get("IIsWebVirtualDirSetting").SpawnInstance_ oVDirSetting.Name = strSitePath & "/ROOT/bar" oVDirSetting.Path = "C:\inetpub\bar" oVDirSetting.Put_ ' Hacer que el VDir sea una aplicacion Set oVDir = oIIS.Get("IIsWebVirtualDir.Name='" & strSitePath & "/ROOT/bar'") oVDir.AppCreate2 1 NO ES CONSISTENTE Crear Sitio Crear Directorio Virtual Crear Aplicación

26 Administración Scripting: nuevo proveedor WMI
CONSISTENTE Set oService = GetObject("winmgmts:root\WebAdministration") ' Crear binding para sitio Set oBinding = oService.Get("BindingElement").SpawnInstance_ oBinding.BindingInformation = "*:80:www.sitio.com" oBinding.Protocol = "http" ' Crear sitio oService.Get("Site").Create _ "NuevoSitio", array(oBinding), "C:\inetpub\wwwroot" ' Crear aplicación oService.Get("Application").Create _ "/foo", "NuevoSitio", "C:\inetpub\wwwroot\acme" Métodos estáticos Create

27 Administración Appcmd – Listar y Filtrar
C:\> appcmd list sites SITE "Default Web Site" (id:1,bindings:HTTP/*:80:,state:Started) SITE "Site1" (id:2,bindings:http/*:81:,state:Started) SITE "Site2" (id:3,bindings:http/*:82:,state:Stopped) C:\> appcmd list requests REQUEST "fb e" (url:GET /wait.aspx?time=10000,time:4276 msec,client:localhost) C:\> appcmd list requests /apppool.name:DefaultAppPool C:\> appcmd list requests /wp.name:3567 C:\> appcmd list requests /site.id:1 C:\> C:\> Podemos filtrar los resultados por Application Pool, Worker Process o Sitio

28 Administración Appcmd – Viewing Config Schema
C:\> appcmd list config /section:? | findstr system.webServer system.webServer/globalModules system.webServer/serverSideInclude system.webServer/httpTracing ... C:\> appcmd list config /section:directoryBrowse <system.webServer>   <directoryBrowse enabled="true" /> </system.webServer> C:\> appcmd list config /section:directoryBrowse /config:* <system.webServer>   <directoryBrowse enabled="true" showFlags="Extension, Size, Time, Date" /> </system.webServer> C:\> appcmd list config /section:directoryBrowse /text:* CONFIG   CONFIG.SECTION: system.webServer/directoryBrowse   path: MACHINE/WEBROOT/APPHOST   overrideMode: Inherit   [system.webServer/directoryBrowse]     enabled:"true"     showFlags:"Extension, Size, Time, Date" Secciones de IIS – también podemos probar “system.web” y “system.applicationHost” C:\> C:\> Muestra aquellos atributos que no están establecidos explicitamente C:\>

29 Administración Microsoft.Web.Administration
Primer API manejada para administrar IIS Mismos objetos y funcionalidad que WMI, o appcmd ¿Por qué no System.Configuration? System.Configuration: Configuración de ASP.NET y .NET Framework fuertemente tipada Microsoft.Web.Administration: Configuración de IIS, ASP.NET, y .NET Framework debilmente tipada Objetos de IIS fuertemente tipados como Sites y ApplicationPools

30 Administración Microsoft.Web.Administration
ServerManager iisManager = new ServerManager(); foreach(WorkerProcess w3wp in iisManager.WorkerProcesses) {     Console.WriteLine("W3WP ({0})", w3wp.ProcessId);                  foreach(Request request in w3wp.GetRequests(0)) {         Console.WriteLine("{0} - {1},{2},{3}",                     request.Url,                     request.ClientIPAddr,                     request.TimeElapsed,                     request.TimeInState);     } }

31 consejo Educar a los usuarios finales, que publicarán sus aplicaciones y usarán IIS Manager para configurarlas… Un escenario: El usuario publica su aplicación El usuario cambia el web.config de la aplicación usando IIS Manager El usuario copia la versión actualizada del web.config a su versión local de la aplicación Varios días más tarde, publica de nuevo la aplicación ** Las modificaciones realizadas al web.config desde IIS Manager se sobreescriben! **

32 Demo Administración

33 Despliegue Opciones de instalación
Server Manager Montones de componentes Servidor estático por defecto [Vista] Usar características de Windows Gestor de paquetes Reemplaza a sysocmgr Desatentida El formato de fichero es totalmente diferente [Vista] Podemos escoger componentes, pero no establecer su configuración

34 Despliegue Instalar, migrar o actualizar
Log de instalación: \Windows\IIS7.log Desinstalar Para los servicios para evitar tener que reiniciar Borrar los ficheros de configuración, hacer un backup de ellos antes de desinstalar Migración: no hay nada en Vista, en LH Server TBD… Actualizar Se instalan todos los componentes web y/o FTP, desinstalar después los componentes no necesarios… Los Application Pools estarán en modo ISAPI, no configurados para ejecutar código manejado => todas las peticiones ASP.NET fallarán

35 Despliegue ASP.NET: Migración
Application Pools Modo integrado con ASP.NET por defecto Configurar para cargar una versión específica del .NET Framework Modo integrado Entorno de servidor diferente para mismas notificaciones del pipeline e.j. la petición no es autenticada para BeginRequest Configuración de Handlers y módulos integrada en IIS system.webServer/handlers, system.webServer/modules

36 Despliegue ASP.NET: Migración
Advertencias de validación sobre httpHandlers, httpModules, o la configuración de identidad Eliminar la precondición “managedHandler” en un módulo ASP.NET que se va a ejecutar para todo tipo de contenido Modo ISAPI No podemos configurar los HTTP handlers ni los módulos desde el UI

37 Despliegue Replicación de applicationHost.config
Provocará que todos los application pools se reciclen: Cambios a los valores por defecto para todos los application pools Cambios a la lista <globalModules> Provocará que un application pool se recicle: Cambios en la configuración para ese application pool Debemos usar solo encriptación RSA a nivel de máquina (por defecto), replicar la clave RSA de la máquina us/library/yxw286t2(VS.80).aspx

38 Despliegue Replicación de applicationHost.config
Cosas a tener en cuenta: Datos específicos de la máquina, como direcciones IP o letras de unidad Los servidores deben de tener el mismo conjunto de módulos instalado (referencias a módulos no existentes en <globalModules> causarán errores 503)

39 Demo Despliegue

40 Seguridad Reduce la superficie de ataque
Menos componentes instalados reduce la superficie de ataque disponible para un atacante Menos componentes instalados significa menos cosas que gestionar, actualizar y mantener Menos componentes en memoria significa mejor rendimiento, escalabilidad y fiabilidad

41 Seguridad Gestión más sencilla de la seguridad
Soporte para la delegación de la administración Gestión unificada de la autenticación y la autorización Dos nuevas cuentas built-in. La cuenta de usuario IUSR reemplaza a la cuenta IUSR_MachineName y se crea sólo cuando instalamos el servidor FTP El grupo IIS_IUSRS reemplaza al grupo IIS_WPG

42 Demo Seguridad

43 Diagnóstico y resolución de problemas Nuevas características
Errores personalizados detallados, como con ASP.NET Failed Request Tracing Se acabaron las trazas a ETW y esperar por una respuesta… Nuevos datos en tiempo de ejecución: worker processes appdomains peticiones en ejecución

44 Diagnóstico y resolución de problemas Failed Request Tracing
No tenemos un método claro de reproducir aquellas peticiones que fallan Podemos definir las condiciones de fallo por URL Tiempo que ha llevado ejecutar la petición Códigos de estado/subestado Nivel de error Persistimos en un log las trazas ¿Me dirá lo que está mal? A veces… por ejemplo, problemas con ACLs Buscar indicios Se puede usar para todas las peticiones para ver qué está sucediendo

45 Diagnóstico y resolución de problemas
Demo Diagnóstico y resolución de problemas

46 Resumen Despliegue… Administración… Resolución de problemas…
~ 40 módulos, instalar solo los necesarios Migrar al modo integrado con ASP.NET Centralización/replicación más fácil Administración… Administrar IIS y ASP.NET desde las mismas herramientas Usar la compatibilidad hacia atrás con el ABO Mapper (no instalado por defecto) Determinar la política de bloqueo de la configuración Resolución de problemas… Usar: Errores detallados, Failed Request Tracing, Currently Executing requests

47 Geeks.ms Plain Concepts

48 © 2006 Plain Concepts. All rights reserved.
This presentation is for informational purposes only. Plain Concepts makes no warranties, express or implied, in this summary.


Descargar ppt "Introducción Internet Information Services 7.0 (IIS 7)"

Presentaciones similares


Anuncios Google