- Un server con accesso SSH
- Server web Nginx in esecuzione sul server (installazione coperta)
- Pitone
- Sei un utente sudo.
Configurazione del server
Iniziamo ora a impostare l'ambiente server che utilizzeremo per ospitare il nostro server. Questo tutorial utilizza il server Ubuntu. Inizia aggiornando i repository e installando Python3 e Pip.
sudo apt-get updatesudo apt-get upgrade -y
sudo apt-get install python3 python3-pip -y
Successivamente, dobbiamo creare una directory per memorizzare il progetto.
sudo mkdir /var/www/applicationcd /var/www/application
Modifica la proprietà e le autorizzazioni della directory:
sudo chown -R www-data:www-data /var/www/application/Quindi, installa i pacchetti usando apt (flask e Gunicorn)
sudo apt-get install python3-flask python3-gunicornProcediamo ora con l'inizializzazione di un'applicazione flask. Inizia creando il main.py-tiene l'applicazione e wsgi.py, che avvierà l'applicazione.
sudo touch principale.py wsgi.piModifica il principale.py e configura la tua applicazione Flask e tutti i percorsi. Poiché questo tutorial non è una guida Flask, imposteremo un percorso di base e un messaggio di ciao mondo.
from flask import Flaskapp = Flask(__name__)
@app.itinerario("/")
def home():
ritorno "
Nginx e Gunicorn
"Modifica il wsgi.py e aggiungi il codice per importare l'app ed esegui come:
dall'app di importazione principaleif __name__ == "__main__":
app.run(debug=True)
Infine, verifica se è attivo e funzionante chiamando flask come:
$ flask run* Ambiente: produzione
ATTENZIONE: questo è un server di sviluppo. Non utilizzarlo in una distribuzione di produzione.
Utilizzare invece un server WSGI di produzione.
* Modalità debug: disattivata
* In esecuzione su http://127.0.0.1:5000/ (premere CTRL+C per uscire)
Prova ad accedere all'applicazione su http://localhost:5000.
Impostare Gunicorn
Una volta che la nostra applicazione è stata eseguita correttamente, possiamo utilizzare Gunicorn per testare l'applicazione utilizzando i comandi:
$ sudo gunicorn --workers 5 wsgi:app[2021-03-19 09:19:34 +0000] [14047] [INFO] Inizio gunicorn 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Ascolto su: http://127.0.0.1:8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Utilizzo del lavoratore: sincronizzazione
[2021-03-19 09:19:34 +0000] [14049] [INFO] Booting worker con pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Booting worker con pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Booting worker con pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Booting worker con pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Booting worker con pid: 14053
I comandi precedenti eseguono l'applicazione flask utilizzando Gunicorn utilizzando il numero specificato di lavoratori. Quindi chiamiamo il file wsgi:app, che è il file e l'istanza dell'applicazione da eseguire.
Una volta che l'applicazione è in esecuzione utilizzando Gunicorn, premi CTRL + C per arrestare il server e configurare Nginx.
Usa i comandi seguenti per installare ed eseguire Nginx.
sudo apt-get install nginx -ysudo systemctl start nginx
sudo systemctl abilita nginx
Il prossimo passo è modificare la configurazione di Nginx nella directory abilitata per i siti e aggiungere il blocco del server. Considera la seguente configurazione. Cambia l'applicazione con il nome del tuo progetto.
sudo nano /etc/nginx/sites-available/application.confserver
ascolta 80;
applicazione nome_server;
access_log /var/log/nginx/application.accesso.registro;
error_log /var/log/nginx/application.errore.registro;
Posizione /
includi proxy_params;
proxy_pass http://unix:/var/www/application/application.calzino;
Procedi per creare un collegamento alla directory abilitata al sito per abilitare il sito web.
sudo ln -s /etc/nginx/sites-available/application.conf /etc/nginx/sites-enabled/Ora riavvia il servizio Nginx come:
sudo systemctl riavvia nginxSuccessivamente, dobbiamo creare un file di unità systemd per servire l'applicazione.
sudo nano /etc/systemd/system/application.servizio[Unità]
Descrizione=applicazione.service - Un'applicazione Flask eseguita con Gunicorn.
Dopo=rete.bersaglio
[Servizio]
Utente=www-data
Gruppo=www-dati
Directorydilavoro=/var/www/application/
ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:/var/www/application.calzino wsgi:app
[Installare]
WantedBy=multiutente.bersaglio
Infine, salva il file dell'unità, quindi abilita e ricarica il demone.
sudo systemctl riavvia l'applicazione.serviziosudo systemctl demone-reload
Ora puoi accedere all'applicazione utilizzando l'indirizzo IP o l'indirizzo specificato nel file di configurazione di nginx. Potrebbe essere necessario aggiungerlo al file dell'host.
curl http://applicationHTTP/1.1 200 OK
Server: Werkzeug/0.16.1 pitone/3.8.5)
Data: Ven, 19 Mar 2021 10:00:39 GMT
Tipo di contenuto: text/html
Lunghezza contenuto: 25
Ultima modifica: ven, 19 mar 2021 09:22:47 GMT
Conclusione
Questo tutorial ha spiegato come configurare un'applicazione Python Flask e servirla su Nginx usando Gunicorn. Considera la documentazione individuale per saperne di più sui servizi discussi in questo tutorial.