Exécutez le serveur python wsgi sur l'unité NGINX

L'unité NGINX a été publiée et je pense qu'elle peut être utilisée comme serveur d'application qui exécute WSGI pour Python. J'ai essayé de déplacer Hello World pour le moment.

Environnement éprouvé

Installation de l'unité NGINX

Installez la version du package ubuntu référencée ici. https://github.com/nginx/unit#ubuntu-packages

Et commencer

$ sudo service unitd start

Créer une application python

Créez une application python avec wsgi. Placez simplement un fichier appelé wsgi.py dans le chemin spécifié et suivez le style wsgi. Vous pouvez le faire avec wsgi, vous pouvez donc utiliser n'importe quel framework.

wsgi.py


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

Description du fichier de paramètres

Au lieu de modifier le fichier placé, il est utilisé comme une notification du paramètre avec l'API, décrivez donc le fichier de paramètre et téléchargez-le pour refléter le paramètre.

start.json


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

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

Reflet des paramètres

L'API de contrôle atteint l'API avec un socket unix. Voir: https://github.com/nginx/unit#configuration

Téléchargez le fichier de paramètres décrit avec curl et réfléchissez-le.

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

Ou bien, l'installation du package d'ubuntu a un script qui fait cela, donc c'est facile à utiliser.

$ sudo service unitd restoreconfig start.json

Vous pouvez obtenir les paramètres en demandant avec GET.

$ 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"
		}
	}
}

Comme unitd n'a pas de fichier de paramètres, il doit être reflété à chaque redémarrage.

Confirmation de l'opération

J'ai configuré l'application pour qu'elle fonctionne sur le port 8400, j'ai donc fait une requête HTTP avec curl et j'ai obtenu le résultat.

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

Par rapport à uWSGI, etc., les fonctions sont extrêmement petites, mais elles pourraient devenir multifonctionnelles à l'avenir. Sera-t-il utilisé dans virtualenv / venv à l'avenir?

Recommended Posts

Exécutez le serveur python wsgi sur l'unité NGINX
Exécutez des applications Web Python avec NGINX + NGINX Unit + Flask
Exécutez Flask sur CentOS avec python3.4, Gunicorn + Nginx.
Exécutez Openpose sur Python (Windows)
Exécutez Tensorflow 2.x sur Python 3.7
Exécutez le CGI de Python sur CORESERVER
Exécutez CGI écrit en python sur le serveur de location de Sakura
Exécutez la commande unix sur python
Jusqu'à ce que Python soit installé avec pythonbrew et que Flask s'exécute sur le serveur WSGI
Paramètres du serveur Python (nginx + Gunicorn)
Installez Python 3 sur le serveur Sakura (FreeBSD)
Exécutez Python selon la planification sur AWS Lambda
Exécutez l'image Docker de TensorFlow sur Python3
Exécutez TensorFlow2 sur le serveur VPS
Exécutez régulièrement Python sur Heroku Scheduler
Exécutez différentes versions des applications Python (wsgi) sur un environnement de développement
Exécutez le servo avec Python sur ESP32 (Windows)
[Python] Exécutez Flask sur Google App Engine
Créer un serveur CGI fonctionnant sur Python 3 sur Docker
Exécutez AzureKinect en Python la veille de Noël.
Exécutez un servomoteur en utilisant python sur Raspberry Pi 3
Construction du serveur d'exécution Python (Python + uWSGI + Django + Nginx)
[Python] Exécutez Headless Chrome sur AWS Lambda
Exécutez le code Python sur A2019 Community Edition
Installer Python3 sur le serveur mixhost [Actuellement NG]
Exécuter le notebook Jupyter sur un serveur distant
Exécutez Python en C ++ sur Visual Studio 2017
Janken Poi avec Python Exécutons sur un serveur local Windows pour les débutants
Installez Python3 et Django sur Amazon Linux (EC2) et exécutez le serveur Web
Exécutez régulièrement des programmes Python sur AWS Lambda
[Note] Construisez un environnement Python sur le serveur de location "CORESERVER"
Installez et exécutez Python3.5 + NumPy + SciPy sur Windows 10
Mettez MicroPython sur Windows pour exécuter ESP32 sur Python
Exécutez des tâches en arrière-plan sur le serveur sur lequel vous vous êtes connecté
twitter avec python3
Exécutez Python YOLOv3 en C ++ sur Visual Studio 2017
Comment exécuter MeCab sur Ubuntu 18.04 LTS Python
Hello World avec nginx + uwsgi + python sur EC2
Exécutez Zookeeper x python (kazoo) sur Mac OS X
python sur mac
Python sur Windbg
Construire un environnement Python sur le serveur Sakura VPS
Test unitaire Python
Exécutez Python sur Apache pour afficher les données InfluxDB
[CGI] Exécutez le programme Python du serveur avec Vue.js + axios et obtenez les données de sortie
Exécutez Paints Chainer sur CPU avec python officiel sur win10
Version errante de Python 3 sur le serveur de location de Sakura (Remarque)
Installez django sur python + anaconda et démarrez le serveur
Conda Python avec Cygwin
Installer python sur WSL
python> udp> serveur d'écho
Exécutez Python avec VBA
Configuration de PyOpenGL sur Python 3
Installez Python sur Pidora.
Exécutez prepDE.py avec python3
Installez Scrapy sur python3
Exécutez Django sur PythonAnywhere
Installez Python sur Mac
Installer Python 3 dans un environnement Mac