Strumenti Utente

Strumenti Sito


Barra laterale

sistema:lighttpd:uwsgi

Lighttpd, uwsgi e Bottle

Autore: Fabio Di Matteo
Ultima revisione: 13/06/2023 - 18:22

Le mie esperienze sulla configurazione di Lighttpd per l'esecuzione di script python con il framework Bottle.

La struttura della nostra cartella del progetto :

conf.ini  main.py	touch_for_reload.txt

Il file main.py contiene il nostro script principale, conf.ini la configurazione di uwsgi e touch_for_reload.txt invece un file vuoto che ci serve per riavviare il server uwsgi senza spegnerlo, basta touch touch_for_reload.txt

Ricordarsi di installare uwsgi e il plugin per il python

main.py

La nostra applicazione vera e propria che fa uso del framework Bottle.

#!/usr/bin/env python
 
from bottle import Bottle, run
 
app = Bottle()
 
@app.route('/')
def hello():
    return "Hello World!"
 
@app.route('/page')
def page():
    return "<h1>A blank page</h1>"
 
@app.route('/bello')
def page():
    return "<h1>Bello!</h1>"
 
@app.route('/cane/gatto')
def page():
    return "<h1>Cane e gatto</h1>"

conf.ini

Il file di configurazione di uwsgi.

[uwsgi]
socket = 127.0.0.1:3031
chdir = /srv/python/
file = main.py
processes = 4
threads = 2
plugins = python
master = true
module= main
callable= app
touch-reload=/srv/python/touch_for_reload.txt

Da notare che callable= punta ad app, la nostra applicazione di Bottle ( app = Bottle()) in main.py

Creare la unit di systemd per avviare uwsgi

Io ho fatto così. /etc/systemd/system/myApps.service

[Unit]
Description=Python apps service (Fabio Di Matteo)

[Service]
Type=simple
User=http
ExecStart=/usr/bin/uwsgi /srv/python/conf.ini
#ExecStop=

[Install]
WantedBy=multi-user.target

avviamo la unit con

systemctl enable --now myApps

Configurazione di lighttpd

/etc/lighttpd/lighttpd.conf

...
#uwsgi
server.modules += ( "mod_scgi" )
scgi.protocol = "uwsgi"
scgi.server = (
  "/apps" => (( "host" => "127.0.0.1", "port" => 3031, "check-local" => "disable" )),
)

...

riavviamo lighttpd

systemctl restart lighttpd 

sistema/lighttpd/uwsgi.txt · Ultima modifica: 13/06/2023 - 18:42 da Fabio Di Matteo