Impostazione del server
Iniziamo ora a impostare l'ambiente del server che useremo per ospitare il nostro server. Questo tutorial utilizza il server Ubuntu. Inizia aggiornando i repository e installando Python3 e PIP.
Sudo Apt-get Aggiornamento
SUDO APT -EGT Aggiornamento -y
sudo apt-get installa python3 python3-pip -y
Successivamente, dobbiamo creare una directory per archiviare il progetto.
sudo mkdir/var/www/applicazione
CD/VAR/WWW/Applicazione
Proprietà e autorizzazioni della directory modifica:
sudo chown -r www-data: www-data/var/www/applicazione/
Quindi, installa i pacchetti utilizzando APT (Fask e Gunicorn)
sudo apt-get Installa Python3-Flask Python3-Gunicorn
Procediamo ora a inizializzare una domanda di pallone. Inizia creando il principale.Py-Holds the Application e WSGI.Py, che farà funzionare l'applicazione.
SUDO TOUCT MAIN.py wsgi.Py
Modifica il principale.File Py e imposta l'applicazione del pallone e tutte le rotte. Poiché questo tutorial non è una guida al pallone, imposteremo un percorso di base e un messaggio Hello World.
Dal pallone di importazione di pallone
app = pallone (__ nome__)
@App.itinerario("/")
def home ():
ritorno "Nginx e gunicorn
"
Modifica il WSGI.File PY e aggiungere il codice per importare l'app ed eseguire come:
Dall'app di importazione principale
Se __Name__ == "__main__":
app.run (debug = true)
Infine, prova se è attivo e funzionante chiamando il pallone come:
$ Flask Run
* Ambiente: produzione
ATTENZIONE: questo è un server di sviluppo. Non usarlo in una distribuzione di produzione.
Usa invece un server WSGI di produzione.
* Modalità di debug: fuori
* In esecuzione su http: // 127.0.0.1: 5000/ (premere Ctrl+C per smettere)
Prova ad accedere all'applicazione su http: // localhost: 5000.
Impostare Gunicorn
Una volta che la nostra applicazione è in esecuzione correttamente, possiamo usare Gunicorn per testare l'applicazione usando i comandi:
$ sudo gunicorn -Worker 5 WSGI: app
[2021-03-19 09:19:34 +0000] [14047] [INFO] Avviare Gunicorn 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Ascolto a: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [Info] Utilizzo del lavoratore: Sync
[2021-03-19 09:19:34 +0000] [14049] [INFO] Avvio del lavoratore con PID: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Avvio del lavoratore con PID: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Working Worker con PID: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Avvio del lavoratore con PID: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Avvio del lavoratore con PID: 14053
I comandi di cui sopra eseguono l'applicazione del pallone usando Gunicorn usando il numero specificato di lavoratori. Chiamiamo quindi il file wsgi: app, che è il file e l'istanza dell'applicazione da eseguire.
Una volta che hai l'applicazione in esecuzione utilizzando Gunicorn, premere Ctrl + C per fermare il server e configurare NGINX.
Utilizzare i comandi seguenti per installare ed eseguire Nginx.
sudo apt -get install nginx -y
sudo systemctl avvia nginx
sudo systemctl abilita nginx
Il prossimo passo è modificare la configurazione Nginx nella directory abilitata ai siti e aggiungere il blocco server. Considera la seguente configurazione. Cambia l'applicazione al nome del tuo progetto.
sudo nano/etc/nginx/siti-disponibile/applicazione.conf
server
Ascolta 80;
Applicazione server_name;
Access_log/var/log/nginx/applicazione.accesso.tronco d'albero;
ERROR_LOG/VAR/LOG/NGINX/Application.errore.tronco d'albero;
posizione /
includere proxy_params;
Proxy_pass http: // unix:/var/www/applicazione/applicazione.calzino;
Procedere a creare un collegamento alla directory abilitata al sito per abilitare il sito Web.
sudo ln -s/etc/nginx/siti -disponibile/applicazione.conf/etc/nginx/siti abilitati/
Ora riavvia il servizio NGINX come:
sudo systemctl riavvio nginx
Successivamente, dobbiamo creare un file di unità di sistema per servire l'applicazione.
sudo nano/etc/systemd/system/applicazione.servizio
[Unità]
Descrizione = applicazione.Servizio: una domanda di applicazione di pallone con Gunicorn.
Dopo = rete.bersaglio
[Servizio]
Utente = www-data
Gruppo = www-data
WorkingDirectory =/var/www/applicazione/
ExecStart =/usr/bin/gunicorn -Worker 3 - -bind Unix:/var/www/applicazione.calzino wsgi: app
[Installare]
WANTEDBY = Multi-utente.bersaglio
Infine, salva il file dell'unità, quindi abilita e ricarica il demone.
Sudo SystemCtl Riavvia applicazione.servizio
sudo systemctl demone-ricarica
Ora è possibile accedere all'applicazione utilizzando l'indirizzo IP o l'indirizzo specificato nel file di configurazione Nginx. Potrebbe essere necessario aggiungerlo al file dell'host.
Curl http: // applicazione
Http/1.1 200 OK
Server: Werkzeug/0.16.1 Python/3.8.5)
Data: ven, 19 mar 2021 10:00:39 GMT
Content-Type: text/html
Lunghezza del contenuto: 25
Ultima modifica: ven, 19 mar 2021 09:22:47 GMT
Conclusione
Questo tutorial è andato su come impostare un'applicazione Python Flask e servirla su Nginx usando Gunicorn. Considera la documentazione individuale per saperne di più sui servizi discussi in questo tutorial.