Sí. Gunicorn puede servir tu estática también.
Si todo lo demás falla, y mucho Django lo haga por usted Para ello, sólo hay que añadir otro patrón de URL, de la siguiente manera (aunque, hacer esto como último recurso antes de la frustración.):
urlpatterns = patterns('',
# ... the rest of your URLconf goes here ...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Si bien django serving static es mejor que no servirlo en absoluto, vale la pena delegar eso a los servidores optimizados para el mismo tipo de nginx.
Recomendaría ejecutar nginx en un puerto diferente para empezar, y cambiar la configuración django STATIC_URL para incluir el puerto (después de haber confirmado que el puerto atiende la estática). - Hacer esto es tan simple como hacer un enlace a MEDIA_ROOT desde la carpeta nginx.
Y si está usando nginx de todos modos, también es bueno realizar un proxy de todas las solicitudes que lo usan y solo pasar la solicitud django al gunicornio. Todo esto requiere es la adición de un archivo conf
que le dice a nginx en consecuencia.
Veo cómo puede ser confuso para aquellos que están comenzando e intentando hacer todo (solicitudes de proxy, servir estáticos, configurar nginx) a la vez. Pruébalo uno por uno. Obtener los medios del gunicornio; Luego preséntala desde nginx y luego eventualmente tendrás el proxy nginx también. Pero haz todo esto antes de que tengas tu aplicación en producción. Este enfoque, he visto aumenta la comprensión y disminuye la frustración.
Gran consejo para probarlo uno a la vez. Gracias. –
Deja de funcionar cuando configuro DEBUG = False – alanjds
Si mi servidor solo hace REST API, no hay archivo estático, no hay equilibrio de carga, ¿hay alguna razón para tener todavía _nginx_ en el frente? –