https - nginx - uwsgi - flask

Django, Flask, Bottle, WSGI, CGI…
Antworten
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Hi,

ich habe ein paar Verständnisfragen.

1.) Wenn ich meinen nginx als reserve proxy verwende und dort TLS konfiguriert habe (Zertifikat, PKey, etc), muss ich dann in meiner Flask-App noch Konfigurationen bzgl https setzen?

2.) Ich bin mir unsicher, ob ich noch etwas zwischen nginx und uwsgi einstellen muss oder reicht es, wenn ich auf meinem web server
uwsgi uwsgi.ini
ausführe, nachdem ich es pip install uWSGI?

LG und schönes Wochenende
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Zu 1: Nein, nach der ssl-Terminierung im Proxy brauchst Du keine weiteren nachgelagerten Tests auf das https-Protokoll.

Zu 2: Der nachgelagerte wsgi-Server ist normaler Server, nur das dieser nicht direkt aus dem Internet angesprochen wird, sondern ausschließlich über den Proxy. D.h. Du musst auch diesen Server so konfigurieren, sei es durch Parameter oder eine Konfigurationsdatei, so wie das von dem jeweilig verwendeten Server erwartet wird. So muss z.B. konfiguriert werden, wie Proxy und wsgi-Server miteinander kommunizieren.

Das gilt auch für uWSGI, wenn von den default Einstellungen abgewichen werden soll. uWSGI verwende ich allerdings nicht mehr.
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

zu 2: du musst den WSGI Applikationsserver so konfigurieren, dass er das macht, was er soll. Wenn ein nginx als Proxy davor sitzt, dann lässt man den WSGI Server normalerweise auf `localhost` und einen unprivilegiertem Port (gerne 8080 oder 8000) laufen. Der Proxy-Server ist dann das Bindeglied zwischen dem Internet und dem WSGI-Applikationsserver auf localhost.

_Persönlich_ finde ich übrigens Gunicorn einfacher zu nutzen (zumindest für Hobby-Admins wie mich :-) ), aber unter Strich ist im Python-Umfeld Gunicorn und uwsgi ungefähr gleich gängig.

Gruß, noisefloor
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Danke. Eine letzte Frage.

Wie sage ich dem Webserver, dass beispielsweise alles was reinkommt an 127.0.0.1:8080 weitergeleitet werden soll?

Die Doku sagt, dass
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8080;
}
in das nginx.config file geschrieben werden muss.

Und dann den uWSGI oder Gunicorn auf 127.0.0.1:8080 laufen lassen? Das war es? Oder habe ich etwas vergessen?
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

also im einfachsten Fall lautet die Direktive wie im uu.de Wiki beschrieben. So mache ich das auch für Gunicorn. Da ist uwsgi nicht nutze kann ich dir nicht sagen, ob das da anders sein soll / muss.

Gruß, noisefloor
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Wenn proxy und wsgi-Server auf der gleichen Maschine laufen, dann könntest Du auch einen Unix Socket-File nehmen, falls das OS dies unterstützt. So braucht der wsgi-Server erst gar keinen Port zu öffnen.
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

noisefloor hat geschrieben: Samstag 6. Februar 2021, 17:12 also im einfachsten Fall lautet die Direktive wie im uu.de Wiki beschrieben. So mache ich das auch für Gunicorn. Da ist uwsgi nicht nutze kann ich dir nicht sagen, ob das da anders sein soll / muss.
ich habe die Information hier her: uWSGI docs - Putting behind a full webserver
Sieht ein wenig anders aus.

@kbr : Was ist der Vorteil von einem Unix Socket-File dann?
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

@naheliegend: in der von dir verlinkten Doku ist doch alles erklärt inkl. warum man welche Zeile wo eintragen soll. Von daher verstehe ich jetzt auch eine Eingangsfrage nicht mehr... Oder misstraust du der Doku von uwsgi und möchtest hier hören, dass die Doku richtig ist?

Gruß, noisefloor
Antworten