Sì. Gunicorn può anche servire la tua staticità.
Se tutto il resto fallisce, lascia Django fanno per voi Per fare questo, basta aggiungere un altro modello di URL, come segue (anche se, fare questo come ultima risorsa prima di frustrazione.):
urlpatterns = patterns('',
# ... the rest of your URLconf goes here ...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Mentre django serve statico è meglio che non servirlo affatto, vale la pena di delegarlo ai server ottimizzati per lo stesso tipo di nginx.
Si consiglia di eseguire nginx su una porta diversa per iniziare e modificare l'impostazione di STD_URL django per includere la porta (dopo aver confermato che la porta serve le statistiche). - Fare questo è semplice come fare un simlink a MEDIA_ROOT dalla cartella nginx.
E se si utilizza comunque nginx, è anche utile eseguire il proxy di tutte le richieste che lo utilizzano e solo passare la richiesta di django al gunicorn. Tutto ciò richiede l'aggiunta di un file conf
che nomini di conseguenza nginx.
Posso vedere come può essere fonte di confusione per chi sta iniziando e sta provando a fare tutto (richieste proxy, servire statico, configurare nginx) in una volta. Provalo uno per uno. Prendi i media dal gunicorn; Quindi servitelo da nginx e poi eventualmente anche il proxy nginx. Ma fai tutto prima di avere la tua app in produzione. Questo approccio, ho visto aumenta la comprensione e diminuisce la frustrazione.
fonte
2012-06-02 19:25:40
Ottimi consigli per provare uno alla volta. Grazie. –
Si interrompe quando si imposta DEBUG = False – alanjds
Se il mio server esegue solo API REST, nessun file statico, nessun bilanciamento del carico, c'è qualche motivo per avere ancora _nginx_ in primo piano? –