¿Cómo un sitio como rambler sirve contenido dinámico tan rápido? ... ¿Es esto puramente la capacidad de Nginx? ¿Dónde debería estar buscando para aprender sobre tales capacidades?
Esto tiene poco o nada que ver con el servidor web utilizado: tanto nginx, IIS y Apache son 'lo suficientemente rápidos' y generalmente hacen su trabajo en milisegundos. nginx es mucho más rápido que Apache, pero esto simplemente significa que el propietario del sitio necesitará menos servidores para la parte de servicio web: nginx no le transfiere datos más rápido.
La parte menos importante es la velocidad del lado del servidor , es decir, el tiempo que lleva crear el HTML. La parte más importante es el rendimiento 'frontend' , con lo que me refiero al HTML, CSS, Javascript e imágenes, el número de estos, el tamaño de estos y la entrega adecuada (compresión HTTP, almacenamiento en caché) de estos.
Por supuesto, la velocidad del lado del servidor sigue siendo importante, no estoy diciendo que deba ignorarse o que no importa. Pero generalmente es la parte más pequeña percibida de la velocidad del usuario final: el trabajo en el servidor a menudo se realiza en menos de 500 milisegundos, pero la página no está lista antes de que pasen entre 3,000 y 5,000 milisegundos. La mayor parte de este tiempo se destina a descargar los recursos frontend (CSS, Javascript, imágenes).
Steve Souders hizo el trabajo original mientras estaba en Yahoo, ahora está trabajando en Google. Su primer libro "Sitios web de alto rendimiento" es el mejor punto de partida para aprender más sobre cómo crear sitios web rápidos. El mismo material que está en su libro se puede encontrar en esta video charla y estas reglas de diseño . Sin embargo, creo que el libro es rápido de leer y mucho más fácil de entender.
Puede ejecutar los sitios a través del probador de WebPageTest.org, lo que le dará una buena idea de la parte frontal de estos sitios y por qué son más rápidos o más lentos.
Creo que serverfault.com si se sirve desde Nginx será mucho más rápido que el IIS 7 (suponiendo que el tiempo de acceso db sea el mismo en ambos casos). ¿Es esta una suposición justa?
No, eso es un malentendido. :-)