Heim Backend-Entwicklung PHP-Tutorial Nginx Gunicorn Django

Nginx Gunicorn Django

Aug 08, 2016 am 09:30 AM
app django gunicorn nbsp

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">官方地址:http://gunicorn.org/</span>
Nach dem Login kopieren
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">                  http://docs.gunicorn.org/en/19.2/</span>
Nach dem Login kopieren

Referenzadresse: http://www.cnblogs.com/ArtsCrafts/p/gunicorn.html

                                                      .com/1030776/1276364

1. Einführung

Was sind die WSGI-Server:
Beispielsweise werden Flask, Webpy, Django und CherryPy alle mit WSGI-Server geliefert. Natürlich ist die Leistung nicht gut. Wenn Sie online veröffentlichen, verwenden Sie einen Hochleistungs-WSGI-Server oder kombinieren Sie ihn mit Nginx, um UWSGI auszuführen.

2. Gunicorn installieren

~$ sudo pip install gunicorn

Wenn Sie möchten, dass Gunicorn asynchrone Worker unterstützt, müssen Sie drei Python-Pakete installieren 🎜>

~$ sudo pip install greenlet

~$ sudo pip install eventlet

~$ sudo pip install gevent

Hinweis: Wenn die Installation von Greenlet fehlschlägt, Sie müssen Python-Header installieren


~$ sudo apt-get install python-dev

Wir können die Version von Gunicorn überprüfen

~$ Gunicorn -- Version

Gunicorn (Version 19.1.1)

2. Verwenden Sie den Gunicorn-Befehl

Nach der erfolgreichen Installation von Gunicorn können Sie die folgenden drei Befehle direkt verwenden, um Gunicorn zu starten und die wsgi-Anwendung oder wsgi auszuführen Rahmen.

1. gunicorn

Der grundlegendste Befehl des Gunicorn-Servers, der direkt zum Ausführen der grundlegendsten Wsgi-Anwendung verwendet wird.

Verwendung: gunicorn [OPTIONS] APP_MODULE

OPTIONS Optionale Parameter Konfigurationsoptionen für die Ausführung von Gunicorn, die später besprochen werden.

APP_MODULE gibt die WSGI-Anwendungsdatei an und schreibt das Format $(MODULE_NAME):$(VARIABLE_NAME). Unter diesen wird Modulname verwendet, um die auszuführende WSGI-Anwendungsdatei anzugeben, es handelt sich jedoch um einen vollständigen Verschönerungsnamen.

Beispielsweise gibt es ein Python-Paket gunicorn_app und das Paket gunicorn_app im aktuellen Verzeichnis. Das MyApp-Verzeichnis enthält eine WSGI-Anwendungsdatei test.py.

Dann kann module_name direkt als gunicorn_app.test geschrieben werden.

Variablenname stellt den Namen des Objekts (ein aufrufbares WSGI, das eine Funktion sein kann) dar, das in der Datei module_name aufgerufen werden soll.

Gemäß dem obigen Beispiel ist das aktuelle Verzeichnis /home/workspace/myapp, und in myapp gibt es ein Paket gunicorn_app. Der test.py-Code lautet wie folgt:

Wir werden die Test-App ausführen

def app(environ, start_response):
    """Simplest possible application object"""
    data = 'Hello, World!\n'
    status = '200 OK'
    response_headers = [
        ('Content-type','text/plain'),
        ('Content-Length', str(len(data)))
    ]
    start_response(status, response_headers)
    return iter([data])
Nach dem Login kopieren

in .py gunicorn gunicorn_app.test:app

2. gunicorn_django

Der Befehl guniorn_django wird verwendet, um die Django-App bereitzustellen Gunicorn-Server.

Eigentlich ist das Prinzip das gleiche wie bei gunicorn, außer dass gunicorn_django speziell verarbeitet wurde, um es besser für Django geeignet zu machen.

Grundlegende Verwendung: gunicorn_django [OPTIONS] [SETTINGS_PATH]

OPTIONS wurde bereits erwähnt.

SETTINGS_PATH Das Verzeichnis, in dem sich die Datei „settings.py“ in der Django-App befindet. Wenn sie nicht geschrieben wird, wird sie standardmäßig im aktuellen Verzeichnis gesucht.


Diese Verwendung gilt jedoch für Django1.4 und höher. Es wird dringend empfohlen, den Befehl gunicorn für Django1.4 und höher zu verwenden.

3. gunicorn_paster

Wenn Sie an diesem Befehl interessiert sind, können Sie ihn in der offiziellen Dokumentation studieren.

3. Gunicorn-Konfiguration

Gunicorn liest Konfigurationsinformationen von drei verschiedenen Orten.

Der erste Platz: Lesen Sie die vom Framework definierten Konfigurationsinformationen aus, die derzeit nur für das Paster-Framework gültig sind.

Zweiter Platz: In der Befehlszeile definiert. Die in der Befehlszeile definierten Konfigurationsinformationen überschreiben den im Framework definierten Wert desselben Parameternamens.

Der dritte Ort: Erstellen Sie eine Konfigurationsdatei und schreiben Sie die Konfigurationsinformationen in die Datei (es handelt sich um eine Python-Quelldatei, Sie sind also so, als würden Sie Python-Code schreiben).

Alle Befehlskonfigurationsinformationen über gunicorn -h anzeigen

Detailliertere Informationen können Sie auch in der offiziellen Dokumentation anzeigen: http://docs.gunicorn.org/en/19.2/

Zum Beispiel basierend auf dem Myapp-Beispiel oben

gunicorn --workers=4 --bind=127.0.0.1:8000 myapp.gunicorn_app.test:app

oben Der Befehl startet 4 Worker und bindet an 127.0.0.1:8000

Oder Sie können die Konfigurationsdatei verwenden:

gunicorn --config=config.py myapp.gunicorn_app.test:app

import multiprocessing

bind = "127.0.0.1:8001"
workers = multiprocessing.cpu_count() * 2 + 1
Nach dem Login kopieren
Einführung in das Gunicorn-Framework

     Gunicorn是基于pre-fork模型的。也就意味着有一个中心管理进程(master process)用来管理worker进程集合。Master从不知道任何关于客户端的信息。所有请求

和响应处理都是由worker进程来处理的。

     Master(管理者)

     主程序是一个简单的循环,监听各种信号以及相应的响应进程。master管理着正在运行的worker集合。

     Worker类型

     1. Sync Workers

         最基本的也是默认的worker type。

         一个同步的worker class,同一时间只能控制一个request请求。

     2. Async Workers

        异步workers的使用是基于Greenlets(通过Eventlet和Gevent)。所以使用此worker type之前一定要安装好python对应的包。

        Greenlets是python多线程协作的一个实现。

     3. Tornado Workers  

         这是一个Tornado worker class。

     

五、Gunicorn部署

       使用Gunicorn必须基于一个代理服务器。

       1. Nginx Configuration

           虽然有很多HTTP代理可以使用,但是我们还是强烈推荐Nginx。如果你选择了其他代理服务器,你需要确认,当你使用默认的Gunicorn workers时,它能够buffers slow clients。没有buffering Gunicorn将很容易受 denial of service attacks的影响。也可使用 slowloris 去核实你的代理服务器是否工作良好。

         如下是一个nginx配置文件实例(假设127.0.0.1:8888端口已经被gunicorn绑定监听):

server {
        #listen   80; ## listen for ipv4; this line is default and implied
        #listen   [::]:80 default ipv6only=on; ## listen for ipv6
        listen 80;
        client_max_body_size 4G;
        server_name www.android_stat.com

        keepalive_timeout 5;



        location / {
                try_files $uri @proxy_to_app;
        }

        location @proxy_to_app {
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_redirect off;
                proxy_pass http://127.0.0.1:8888;
        }
Nach dem Login kopieren
六、监控Gunicorn

       注意:要监控Gunicorn的时候,Gunicorn不能启动daemon模式,如果使用daemon模式会fork出一个进程,这样监控工具就没法监控这个进程。

       我在这只介绍supervisor

      1. Supervisor

          Supervisor可以用来监控进程,下面是一个简单的supervisor的配置文件:

[program:gunicorn]
command=/path/to/gunicorn main:application -c /path/to/gunicorn.conf.py
directory=/path/to/project
user=nobody
autostart=true
autorestart=true
redirect_stderr=true
Nach dem Login kopieren

       

    

以上就介绍了nginx+gunicorn+django,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So führen Sie eine Authentifizierung mit echtem Namen in der Jingdong Mall APP durch So führen Sie eine Authentifizierung mit echtem Namen in der Jingdong Mall APP durch Mar 19, 2024 pm 02:31 PM

Wie erhalte ich eine Authentifizierung mit echtem Namen in der Jingdong Mall APP? Jingdong Mall ist eine Online-Shopping-Plattform, die viele Freunde häufig nutzen. Vor dem Einkaufen ist es am besten, dass jeder eine Authentifizierung mit echtem Namen durchführt, damit er den vollständigen Service genießen und ein besseres Einkaufserlebnis erhalten kann. Das Folgende ist die Echtnamen-Authentifizierungsmethode für JD.com. Ich hoffe, dass sie für Internetnutzer hilfreich ist. 1. Installieren und öffnen Sie JD.com und melden Sie sich dann bei Ihrem persönlichen Konto an. 2. Klicken Sie dann unten auf der Seite auf [Mein], um die persönliche Center-Seite aufzurufen obere rechte Ecke, um zur Einstellungsfunktionsoberfläche zu gelangen. 4. Wählen Sie [Konto und Sicherheit], um zur Seite mit den Kontoeinstellungen zu gelangen. 5. Klicken Sie abschließend auf die Option [Authentifizierung mit echtem Namen], um die Informationen zum echten Namen einzugeben . Das Installationssystem erfordert die Eingabe Ihrer echten persönlichen Daten und die Durchführung der Echtnamen-Authentifizierung

Django vs. Flask: Eine vergleichende Analyse von Python-Web-Frameworks Django vs. Flask: Eine vergleichende Analyse von Python-Web-Frameworks Jan 19, 2024 am 08:36 AM

Django und Flask sind beide führend bei Python-Web-Frameworks und haben beide ihre eigenen Vorteile und anwendbaren Szenarien. In diesem Artikel wird eine vergleichende Analyse dieser beiden Frameworks durchgeführt und spezifische Codebeispiele bereitgestellt. Entwicklungseinführung Django ist ein Web-Framework mit vollem Funktionsumfang, dessen Hauptzweck darin besteht, schnell komplexe Webanwendungen zu entwickeln. Django bietet viele integrierte Funktionen wie ORM (Object Relational Mapping), Formulare, Authentifizierung, Verwaltungs-Backend usw. Diese Funktionen ermöglichen es Django, große Mengen zu verarbeiten

Schritte und Vorsichtsmaßnahmen für die Registrierung einer Apple-ID in Hongkong (genießen Sie die einzigartigen Vorteile des Apple Store in Hongkong) Schritte und Vorsichtsmaßnahmen für die Registrierung einer Apple-ID in Hongkong (genießen Sie die einzigartigen Vorteile des Apple Store in Hongkong) Sep 02, 2024 pm 03:47 PM

Die Produkte und Dienstleistungen von Apple waren schon immer bei Nutzern auf der ganzen Welt beliebt. Die Registrierung einer Hongkong-Apple-ID bietet Benutzern mehr Komfort und Privilegien. Werfen wir einen Blick auf die Schritte zur Registrierung einer Hongkong-Apple-ID und worauf Sie achten müssen. So registrieren Sie eine Apple-ID für Hongkong. Wenn Sie Apple-Geräte verwenden, ist für die Anmeldung bei vielen Anwendungen und Funktionen die Verwendung einer Apple-ID erforderlich. Wenn Sie Anwendungen aus Hongkong herunterladen oder die bevorzugten Inhalte des Hong Kong AppStore genießen möchten, ist es unbedingt erforderlich, eine Hong Kong Apple ID zu registrieren. In diesem Artikel erfahren Sie, wie Sie eine Apple-ID für Hongkong registrieren und worauf Sie achten müssen. Schritte: Sprache und Region auswählen: Suchen Sie auf Ihrem Apple-Gerät die Option „Einstellungen“ und geben Sie ein

Vor- und Nachteile des Django Framework: Alles, was Sie wissen müssen Vor- und Nachteile des Django Framework: Alles, was Sie wissen müssen Jan 19, 2024 am 09:09 AM

Django ist ein vollständiges Entwicklungsframework, das alle Aspekte des Webentwicklungslebenszyklus abdeckt. Derzeit ist dieses Framework eines der beliebtesten Web-Frameworks weltweit. Wenn Sie vorhaben, mit Django Ihre eigenen Webanwendungen zu erstellen, müssen Sie die Vor- und Nachteile des Django-Frameworks verstehen. Hier finden Sie alles, was Sie wissen müssen, einschließlich spezifischer Codebeispiele. Vorteile von Django: 1. Schnelle Entwicklung – Djang kann Webanwendungen schnell entwickeln. Es bietet eine umfangreiche Bibliothek und interne

So kündigen Sie das Datenpaket auf der China Unicom-App. So kündigen Sie das Datenpaket auf der China Unicom-App So kündigen Sie das Datenpaket auf der China Unicom-App. So kündigen Sie das Datenpaket auf der China Unicom-App Mar 18, 2024 pm 10:10 PM

Die China Unicom-App kann problemlos alle Anforderungen erfüllen. Sie verfügt über verschiedene Funktionen, um Ihre Anforderungen zu erfüllen. Wenn Sie sie nicht benötigen, können Sie sie hier rechtzeitig abbestellen Um spätere Verluste zu vermeiden, haben viele Menschen bei der Nutzung von Mobiltelefonen manchmal das Gefühl, dass die Daten nicht ausreichen, und kaufen daher zusätzliche Datenpakete. Wenn sie diese jedoch im nächsten Monat nicht möchten, möchten sie das Abonnement sofort kündigen Der Herausgeber erklärt: Wir bieten eine Methode zum Abbestellen, damit Freunde, die sie benötigen, kommen und sie nutzen können! Suchen Sie in der China Unicom-App die Option „Mein“ in der unteren rechten Ecke und klicken Sie darauf. Schieben Sie in der Benutzeroberfläche „Mein“ die Spalte „Meine Dienste“ und klicken Sie auf die Option „Ich habe bestellt“.

So aktualisieren Sie die Django-Version: Schritte und Überlegungen So aktualisieren Sie die Django-Version: Schritte und Überlegungen Jan 19, 2024 am 10:16 AM

So aktualisieren Sie die Django-Version: Schritte und Überlegungen, spezifische Codebeispiele erforderlich. Einführung: Django ist ein leistungsstarkes Python-Web-Framework, das kontinuierlich aktualisiert und aktualisiert wird, um eine bessere Leistung und mehr Funktionen bereitzustellen. Für Entwickler, die ältere Versionen von Django verwenden, kann die Aktualisierung von Django jedoch einige Herausforderungen mit sich bringen. In diesem Artikel werden die Schritte und Vorsichtsmaßnahmen zum Aktualisieren der Django-Version vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Sichern Sie die Projektdateien, bevor Sie Djan aktualisieren

So stellen Sie Rechnungen mit der Multipoint-App aus So stellen Sie Rechnungen mit der Multipoint-App aus Mar 14, 2024 am 10:00 AM

Rechnungen sind als Kaufnachweis für unser tägliches Leben und Arbeiten von entscheidender Bedeutung. Wenn wir also normalerweise die Duodian-App zum Einkaufen verwenden, wie können wir dann problemlos Rechnungen in der Duodian-App ausstellen? Nachfolgend stellt Ihnen der Herausgeber dieser Website eine detaillierte Schritt-für-Schritt-Anleitung zum Öffnen von Rechnungen in Multipoint-Apps vor. Wer mehr wissen möchte, darf sich den Text nicht entgehen lassen, um mehr zu erfahren. Klicken Sie im [Rechnungscenter] auf [Multi-Point-Supermarkt/Free Shopping], wählen Sie auf der Seite „Abgeschlossene Bestellung“ die Bestellung aus, die in Rechnung gestellt werden soll, klicken Sie auf „Weiter“, um die [Rechnungsinformationen] und [Empfängerinformationen] einzugeben, und klicken Sie auf Senden Sie die E-Mail ab, nachdem Sie bestätigt haben, dass sie korrekt ist. Gehen Sie nach einigen Minuten zum Postfach des Empfängers, öffnen Sie die E-Mail, klicken Sie auf die Download-Adresse für die elektronische Rechnung und laden Sie schließlich die elektronische Rechnung herunter und drucken Sie sie aus.

Die professionelle Video-App von Blackmagic landet auf Android, kann aber auf Ihrem Telefon wahrscheinlich nicht ausgeführt werden Die professionelle Video-App von Blackmagic landet auf Android, kann aber auf Ihrem Telefon wahrscheinlich nicht ausgeführt werden Jun 25, 2024 am 07:06 AM

Blackmagic Design hat seine vielgelobte Blackmagic Camera App endlich auf Android gebracht. Die professionelle Videokamera-App kann kostenlos heruntergeladen werden und bietet vollständige manuelle Steuerung. Diese Kontrollen sollen Ihnen die Einnahme von Cin auf Profiniveau erleichtern

See all articles