Come configurare Gunicorn per servire applicazioni Web Python

In questo articolo, configureremo un VPS per servire le applicazioni Web Python con Gunicorn e Nginx come proxy inverso. Usiamo Nginx come proxy inverso invece di servire direttamente con Gunicorn per prevenire attacchi DoS su Gunicorn. L'uso di Nginx migliora anche le prestazioni (con proxy buffering) e comporta la gestione di più richieste.

Iniziare

Questo tutorial presuppone che tu abbia già una VM con Ubuntu 14.04 o più recenti installati, aggiornati e protetti.

  • La nostra istanza Nginx verrà eseguita sulla porta HTTP 80 (ma puoi facilmente eseguire l'aggiornamento a HTTPS).
  • La nostra app Python di esempio ascolterà sulla porta 8080. Questa porta verrà chiusa su iptables per impedire l'accesso remoto.
  • Questo tutorial dovrebbe essere eseguito su altre distro con modifiche minime.

Installare pip, virtualenv:

apt-get install python-pip python-virtualenv

Chiudere la porta 8080. Gunicorn sarà raggiungibile solo da Nginx.

iptables -A INPUT -p tcp --destination-port 8080 -j DROP

Crea una nuova cartella e configura la nostra applicazione. Useremo il framework Flask.

mkdir /var/www-folder/
cd /var/www-folder/
virtualenv exampleapp
source exampleapp/bin/activate
cd exampleapp
pip install gunicorn
pip install flask

Crea il file dell'applicazione.

nano myapplication.py 

Incolla quanto segue all'interno:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, Vultr!'

Ciò produrrebbe una semplice pagina che dice "Ciao, Vultr!" quando qualcuno accede alla pagina. Adesso avvia Gunicorn. Sostituisci xcon 2 volte il numero di core della CPU della tua VM.

gunicorn -w x myapplication:app &

Installa Nginx e configura il proxy inverso.

deactivate
apt-get install nginx
nano /etc/nginx/sites-enabled/default

Cerca la location / {riga e sostituisci il contenuto tra parentesi con il seguente contenuto.

proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8000/;

Questa configurazione indica a Nginx di inoltrare alcune informazioni (protocollo HTTP, indirizzo IP remoto) insieme alla richiesta effettiva al server Gunicorn. Ricarica Nginx.

service nginx reload

A questo punto, l'applicazione Gunicorn è stata configurata correttamente. È possibile accedervi utilizzando un browser Web all'indirizzo http://your-vps-ip/.



Leave a Comment

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.