Nginx

Come usare Nginx con Flask.

Come usare Nginx con Flask.
Python è un linguaggio di programmazione fantastico, facile da imparare e onnipotente, e con framework come Django e Flask, possiamo usarlo per creare applicazioni web a tutti gli effetti. Una volta creata un'applicazione web utilizzando librerie e framework come Flask, dobbiamo ospitarla su un server ed esporla al pubblico. Questo tutorial spiega come ospitare la tua applicazione web su un server che esegue Nginx usando Gunicorn. Prima di iniziare con Flask e Gunicorn, assicurati di soddisfare i seguenti requisiti:

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 update
sudo 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/application
cd /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-gunicorn

Procediamo 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.pi

Modifica 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 Flask
app = 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 principale
if __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 -y
sudo 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.conf
server
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 nginx

Successivamente, 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.servizio
sudo 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://application
HTTP/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.

Come aumentare gli FPS in Linux?
FPS sta per Fotogrammi al secondo. Il compito dell'FPS è misurare il frame rate nelle riproduzioni video o nelle prestazioni di gioco game. In parole ...
I migliori giochi di laboratorio dell'app Oculus
Se possiedi un visore Oculus, devi essere informato sul sideloading. Il sideloading è il processo di installazione di contenuti non archiviati sul vis...
I 10 migliori giochi da giocare su Ubuntu
La piattaforma Windows è stata una delle piattaforme dominanti per i giochi a causa dell'enorme percentuale di giochi che si stanno sviluppando oggi p...