Come usare nginx con il pallone.

Come usare nginx con il pallone.
Python è un linguaggio di programmazione eccezionale, facile da mangiare e onnipotente e con framework come Django e Flask, possiamo usarlo per creare applicazioni Web a pieno titolo. Una volta che creiamo un'applicazione Web utilizzando librerie e framework come il pallone, dobbiamo ospitarla su un server ed esporla al pubblico. Questo tutorial discute come ospitare la tua applicazione Web su un server che esegue Nginx usando Gunicorn. Prima di iniziare con Bask e Gunicorn, assicurati di soddisfare i seguenti requisiti:
  • Un server con accesso SSH
  • NGINX Web Server in esecuzione sul server (installazione coperta)
  • Pitone
  • Sei un utente sudo.

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.