Nginx + Gunicorn + Flask= può accedere solo all'app Web tramite Port Domain..com:5555
Domanda
Ho seguito le istruzioni qui esattamente: http://www.onurguzel.com/How-to-run-flask-applications-with-nginx-using-gunicorn /
Tutto sembra funzionare tranne che quando vado a dominio.com, il mio sito non carica.Solo quando vado al dominio: 5555, dove è configurato il pallone da eseguire, posso accedere al mio sito.
è questo perché il mio pallone è configurato in modalità Debug?
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5555, debug=True)
. Soluzione
Se hai fatto la configurazione proprio come descritto nel post, è necessario sostituire questo
proxy_pass http://127.0.0.1:8000;
.
con questo
proxy_pass http://127.0.0.1:5555;
.
Non proprio il miglior configurazione nginx che ho visto che usa 'se' e se è malvagio ,Riscriverò questa configurazione per te quando ho un minuto di riserva, assicurati che prima funzioni dopo aver fatto questo cambiamento, non dimenticare di eseguire
sudo service nginx reload
.
Modifica : Scusa ti ho dimenticato di questo, ecco il mio sostituto per la parte
if
location / {
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
try_files $uri @proxy;
}
location @proxy {
proxy_pass http://127.0.0.1:8000;
}
.
Puoi provarlo e dirmi come va.
Altri suggerimenti
Il metodo app.run()
per eseguire l'applicazione che si utilizza non utilizza Gunicorn né Nginx, questo è in esecuzione il server Web Development di Flask.
Torna alla pagina Si fa riferimento e rileggi la parte di avviare l'app con Gunicorn.Una volta che hai l'app in esecuzione con Gunicorn, che puoi testare aprendo http://127.0.0.1:8000
(dal server, non dall'esterno), quindi avviare nginx con la configurazione che danno e che espongono l'app sul tuo dominio come ti aspetti.