Führen Sie den Python-WSGI-Server auf der NGINX-Einheit aus

Die NGINX-Einheit wurde veröffentlicht, und ich bin der Meinung, dass sie als Anwendungsserver verwendet werden kann, auf dem WSGI für Python ausgeführt wird. Ich habe vorerst versucht, Hello World zu bewegen.

Versuchte Umgebung

Installation der NGINX-Einheit

Installieren Sie die Ubuntu-Paketversion, auf die hier Bezug genommen wird. https://github.com/nginx/unit#ubuntu-packages

Und Start

$ sudo service unitd start

Erstellen einer Python-Anwendung

Erstellen Sie eine Python-Anwendung mit wsgi. Platzieren Sie einfach eine Datei mit dem Namen wsgi.py im angegebenen Pfad und folgen Sie dem wsgi-Stil. Sie können es mit wsgi machen, so dass Sie jedes Framework verwenden können.

wsgi.py


def application(environ, start_response):
	start_response('200 OK', [('Content-Type', 'text/plain')])
	return ['Hello World\n'.encode('utf-8')]

Beschreibung der Einstellungsdatei

Anstatt die platzierte Datei zu ändern, wird sie wie das Benachrichtigen der Einstellung mit der API verwendet. Beschreiben Sie daher die Einstellungsdatei und laden Sie sie hoch, um die Einstellung widerzuspiegeln.

start.json


{
	"applications": {
		"hello": {
			"type": "python",
			"workers": 2,
			"path": "/home/ubuntu",
			"module": "wsgi"
		}
	},

	"listeners": {
		"*:8400": {
			"application": "hello"
		}
	}
}

Reflexion der Einstellungen

Die Steuerungs-API trifft die API mit einem Unix-Socket. Siehe: https://github.com/nginx/unit#configuration

Laden Sie die beschriebene Einstellungsdatei mit curl hoch und reflektieren Sie sie.

$ sudo curl -X PUT -d @start.json --unix-socket /var/run/control.unit.sock http://localhost/

Oder die Paketinstallation von Ubuntu verfügt über ein Skript, das dies ermöglicht und daher einfach zu verwenden ist.

$ sudo service unitd restoreconfig start.json

Sie können die Einstellungen erhalten, indem Sie mit GET anfordern.

$ sudo curl --unix-socket /var/run/control.unit.sock http://localhost/
{
	"applications": {
		"hello": {
			"type": "python",
			"workers": 2,
			"path": "/home/ubuntu",
			"module": "wsgi"
		}
	},

	"listeners": {
		"*:8400": {
			"application": "hello"
		}
	}
}

Da unitd keine Einstellungsdatei hat, muss diese bei jedem Neustart wiedergegeben werden.

Bestätigung des Betriebs

Ich habe die Anwendung so eingestellt, dass sie auf Port 8400 funktioniert, also habe ich dort eine HTTP-Anfrage mit Curl gestellt und das Ergebnis erhalten.

$ curl http://localhost:8400/
Hello World              

Im Vergleich zu uWSGI usw. sind die Funktionen überwiegend klein, können aber in Zukunft multifunktional werden. Wird es in Zukunft in virtualenv / venv verwendet?

Recommended Posts

Führen Sie den Python-WSGI-Server auf der NGINX-Einheit aus
Führen Sie Python-Webanwendungen mit NGINX + NGINX Unit + Flask aus
Führen Sie Flask unter CentOS mit Python3.4, Gunicorn + Nginx aus.
Führen Sie Openpose unter Python (Windows) aus.
Führen Sie Tensorflow 2.x unter Python 3.7 aus
Führen Sie Pythons CGI auf CORESERVER aus
Führen Sie in Python geschriebenes CGI auf Sakuras Mietserver aus
Führen Sie den Unix-Befehl auf Python aus
Bis Python mit Pythonbrew installiert ist und Flask auf dem WSGI-Server ausgeführt wird
Python-Servereinstellungen (Nginx + Gunicorn)
Installieren Sie Python 3 auf dem Sakura-Server (FreeBSD)
Führen Sie Python planmäßig auf AWS Lambda aus
Führen Sie das Docker-Image von TensorFlow unter Python3 aus
Führen Sie TensorFlow2 auf dem VPS-Server aus
Führen Sie Python regelmäßig auf Heroku Scheduler aus
Führen Sie verschiedene Versionen von Python (wsgi) -Apps in einer Entwicklungsumgebung aus
Führen Sie das Servo mit Python unter ESP32 (Windows) aus.
[Python] Führen Sie Flask in Google App Engine aus
Erstellen Sie einen CGI-Server, der unter Python 3 in Docker ausgeführt wird
Führen Sie AzureKinect an Heiligabend in Python aus.
Lassen Sie einen Servomotor mit Python auf Raspberry Pi 3 laufen
Aufbau des Python-Ausführungsservers (Python + uWSGI + Django + Nginx)
[Python] Führen Sie Headless Chrome unter AWS Lambda aus
Führen Sie Python-Code in der A2019 Community Edition aus
Installieren Sie Python3 auf dem Mixhost-Server [Derzeit NG]
Führen Sie Jupyter Notebook auf einem Remote-Server aus
Führen Sie Python in C ++ unter Visual Studio 2017 aus
Janken Poi mit Python Lassen Sie uns für Anfänger auf einem lokalen Windows-Server laufen
Installieren Sie Python3 und Django unter Amazon Linux (EC2) und führen Sie den Webserver aus
Führen Sie regelmäßig Python-Programme auf AWS Lambda aus
[Hinweis] Erstellen Sie eine Python-Umgebung auf dem Mietserver "CORESERVER".
Installieren Sie Python3.5 + NumPy + SciPy und führen Sie es unter Windows 10 aus
Setzen Sie MicroPython unter Windows ein, um ESP32 unter Python auszuführen
Führen Sie Aufgaben im Hintergrund auf dem Server aus, an den Sie gesendet haben
Twitter mit Python3
Führen Sie Python YOLOv3 in C ++ unter Visual Studio 2017 aus
So führen Sie MeCab unter Ubuntu 18.04 LTS Python aus
Hallo Welt mit Nginx + Uwsgi + Python auf EC2
Führen Sie Zookeeper x Python (Kazoo) unter Mac OS X aus
Python auf Mac
Python auf Windbg
Erstellen einer Python-Umgebung auf dem Sakura VPS-Server
Python-Unit-Test
Führen Sie Python auf Apache aus, um InfluxDB-Daten anzuzeigen
[CGI] Führen Sie das Server-Python-Programm mit Vue.js + axios aus und rufen Sie die Ausgabedaten ab
Führen Sie Paints Chainer auf der CPU mit offiziellem Python auf win10 aus
Streunender Build von Python 3 auf Sakuras Mietserver (Hinweis)
Installieren Sie django auf Python + Anaconda und starten Sie den Server
Python Conda mit Cygwin
Installieren Sie Python auf der WSL
python> udp> echo server
Führen Sie Python mit VBA aus
PyOpenGL-Setup unter Python 3
Installieren Sie Python auf Pidora.
Führen Sie prepDE.py mit python3 aus
Installieren Sie Scrapy auf Python3
Führen Sie Django auf PythonAnywhere aus
Installieren Sie Python auf dem Mac
Installieren von Python 3 in einer Mac-Umgebung