¿Por qué necesito nginx cuando tengo uWSGI?

Pregunta:

Hay muchos tutoriales sobre cómo configurar nginx para cooperar con uWGSI cuando quiero implementar la aplicación Django.

Pero, ¿por qué necesito nginx en este kit? uWSGI en sí mismo puede servir aplicaciones WSGI Python, puede servir archivos estáticos, también puede hacer SSL. ¿Qué puede hacer nginx que uWSGI no puede hacer?

Respuesta:

Tu no

De todos modos, esa es la respuesta simple: no la necesita . uWSGI es en sí mismo un servidor capaz.

Sin embargo, otros servidores como nginx han existido por más tiempo y son (probablemente, de todos modos) más seguros, además de tener funciones adicionales que uWSGI no admite, por ejemplo, manejo mejorado de recursos estáticos (a través de cualquier combinación de Expires o E-Tag encabezados, compresión gzip, gzip precomprimido, etc.) que pueden reducir significativamente la carga del servidor y la red; Además, un servidor como nginx frente a su aplicación Django también puede implementar el almacenamiento en caché de su contenido dinámico, lo que ayuda a reducir la carga del servidor e incluso a facilitar el uso de una CDN (que normalmente no funciona bien con contenido dinámico ). Incluso podría ir más allá y tener nginx en un servidor completamente separado, invirtiendo las solicitudes de proxy de contenido dinámico a un clúster de servidores de aplicaciones con equilibrio de carga mientras maneja el contenido estático en sí.

Por ejemplo, mi blog (aunque es WordPress, tiene nginx delante) está ajustado para almacenar en caché publicaciones durante 24 horas y almacenar páginas de índice en caché durante 5 minutos; Si bien no veo suficiente tráfico para que eso realmente importe la mayor parte del tiempo, ayuda a mi pequeño VPS a capear el aumento ocasional que de otro modo podría derribarlo, como el gran aumento de tráfico cuando uno de mis artículos fue elegido. publicado por un tuitero con muchos miles de seguidores, muchos de los cuales lo re-tuitearon a sus miles de seguidores.

Si hubiera estado ejecutando un servidor uWSGI "desnudo" (y asumiendo que hubiera sido un sitio de Django, en lugar de WordPress), podría haberlo resistido bien, o podría haberse bloqueado y quemado, lo que me costó la pérdida de visitantes. . Tener nginx delante para manejar esa carga realmente puede ayudar.

Dicho todo esto, si solo está ejecutando un pequeño sitio que no verá mucho tráfico, no hay una necesidad real de nginx ni nada más; solo use uWSGI por sí solo si eso es lo que desea hacer. Por otro lado, si ve mucho tráfico … bueno, es posible que aún desee uWSGI, pero al menos debería considerar algo frente a él para ayudar con la carga. En realidad, debería estar probando la carga de diferentes configuraciones con su sitio terminado para determinar qué funciona mejor para usted con la carga esperada y usar lo que sea que termine siendo.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım