Servidores web para Windows

Llevo ya muchos años trabajando con servidores web, de ellos bastante tiempo sobre Windows y es bastante complicado. Llegar a una configuración óptima en Windows solo puede ser con prueba y error, no hay una receta mágica que te lo permita, pero no por ello son malos servidores, en mi opinión creo que se han dejado de lado.

Windows representa sólo el 32,2 % en los sistemas operativos que mantienen servidores web.


¿Por qué tan poca cuota?

Para montar un servidor web bajo Windows sólo existen 2 excusas potentes:
  1. Trabajas con ASP
  2. Tu base de datos está en Microsoft SQL Server
Para el punto 1 no hay alternativa posible, ASP necesita IIS y por ello Windows.



Por el contrario el punto 2 es más susceptible a cambio (y más ahora con los nuevos desarrollos en los que la propia Microsoft está involucrada como el driver ODBC y la adaptación a Linux del propio SQL Server). Para trabajar con SQL Server no es necesario ASP, puedes acceder desde PHP con ODBC, eso si, el rendimiento es muy pobre, lo mejor es instalar PHP sobre Windows y utilizar el driver de Microsoft creado para este fin, oficial, con soporte y rápido.


Como podemos ver en las dos gráficas anteriores es lógico que la cuota de Windows sea relativamente poca (ojo que es 1/3), ASP solo está presente en el 15,7 % de los sitios web y SQL Server es el 3 sistema de gestión de bases de datos del mercado (de 303 según db-engine).

Ahora bien, has decidido utilizar Windows como tu sistema operativo para tu servidor web, cuál elegir.


Internet Information Services


Va por su versión 8 y parte con la ventaja que es innato de Windows pero a la vez esa es su gran desventaja. Es un servidor cuya configuración visual es muy engorrosa y pesada, es más sencillo gestionar los archivos de configuración de sus competidores que sus ventanas y opciones de configuración. Hay muchos manuales pero es como un monstruo para algo muy simple: servir páginas web. La formación reglada es cara, la documentación online compleja. Incorpora un servidor SMTP lo cual muchas veces es mas un estorbo que una ayuda.

Apache


Por muchos años ha sido el servidor web por excelencia, y lo sigue siendo aunque su crecimiento se reduce en favor de otros servidores más modernos. La configuración no es trivial y hay tanta información antigua en internet que es una odisea encontrar algo para versiones actuales. La distribución oficial se ha quedado obsoleta para Windows con lo cual tenemos que tomar los binarios de sitios no oficiales. Su unión con PHP es su mayor fortaleza, es sin duda el servidor web que hay que utilizar para servir código en PHP.

Nginx


Este pequeño está arrasando, es cierto que la distribución oficial tiene muchos fallos para Windows pero existen binarios compilados por terceros muy bien mantenidos y fiables. La configuración es muy simple, el soporte de HTTP2 y su velocidad al servir páginas estáticas lo hacen el objetivo perfecto. Su relación con PHP en Windows no es muy buena, todas las opciones con PHP como Fast-CGI son inestables por definición (multi proceso en un entorno multi hilo).

¿Qué configuración elegir para PHP?


Yo sin pensarlo dos veces prefiero Nginx como servidor frontal y luego un proxy a Apache + PHP.

Comentarios