nginx+グニコーン+ジャンゴ

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>
ログイン後にコピー
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">                  http://docs.gunicorn.org/en/19.2/</span>
ログイン後にコピー

参考アドレス:http://www.cnblogs.com/ArtsCrafts/p/gunicorn.html

WSGI サーバーとは:

たとえば、Flask、webpy、Django、CherryPy にはすべて WSGI サーバーが付属しています。もちろん、組み込みの Web サーバーはテスト用です。オンラインで公開する場合は、高性能の wsgi サーバーを使用するか、nginx と組み合わせて uwsgi を実行します。


2. gunicorn をインストールします

~$ sudo pip install gunicorn

Gunicorn に非同期ワーカーをサポートさせたい場合は、3 つの Python パッケージをインストールする必要があります

~$ sudo pip install greenlet

~$ sudo pip install eventlet

~$ sudo pip install gevent

注: greenlet のインストールが失敗した場合は、Python ヘッダーをインストールする必要があります

~$ sudo apt-get install python-dev

gunicorn のバージョンを確認できます

~$ gunicorn - -Versionn Gunicorn (バージョン 19.1.1)


II、Gunicorn コマンドは、Gunicorn のインストールが成功した後、次の 3 つの命令を使用して、Gunicorn 実行 WSGI アプリケーションまたは WSGI フレームワークを開始します。

1. gunicorn

Gunicorn サーバーの最も基本的なコマンド。最も基本的な wsgi アプリケーションを実行するために直接使用されます。

使用法: gunicorn [OPTIONS] APP_MODULE

OPTIONS オプションのパラメーター gunicorn を実行するための構成オプション (後で説明します)。

APP_MODULE は、$(MODULE_NAME):$(VARIABLE_NAME) の形式で wsgi アプリケーション ファイルを指定します。このうち module_name は実行する wsgi アプリケーションファイルを指定するために使用されますが、これは完全な装飾名です。

たとえば、現在のディレクトリ myapp ディレクトリに Python パッケージ gunicorn_app があり、gunicorn_app パッケージの下に wsgi アプリケーション ファイル test.py があります。

次に、 module_name を gunicorn_app.test として直接記述することができます。 module_nameファイルで呼び出されるオブジェクトの名前(関数と呼ばれるWSGI)を表します。

上記の例によれば、現在のディレクトリは /home/workspace/myapp で、myapp にはパッケージ gunicorn_app があり、test.py コードは次のとおりです:

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])
ログイン後にコピー
テストでアプリを実行します。 .py

gunicorn gunicorn_app.test: app

2. gunicorn_django


gunicorn_django コマンドは、Django アプリを Gunicorn サーバーにデプロイするために使用されます。

原理は gunicorn と同じですが、gunicorn_django が Django により適するように特別に処理されている点が異なります。

基本的な使用法: gunicorn_django [OPTIONS] [SETTINGS_PATH]

OPTIONS については前に説明しました。

SETTINGS_PATH django アプリの settings.py ファイルが配置されているディレクトリ。 書かれていない場合は、デフォルトで現在のディレクトリから検索されます。ただし、この使用法は、Django 1.4 以降のバージョンの django に適用されます。gunicorn コマンドを使用することを強くお勧めします。 。 N u 3. Gunicorn_Paster

このコマンドは、公式文書の調査に興味があります。

3. Gunicorn の設定


Gunicorn は 3 つの異なる場所から設定情報を読み取ります。

まず、フレームワークによって定義された構成情報から読み取ります。現在、Paster フレームワークでのみ有効です。

2 番目: コマンド ラインで定義すると、コマンド ラインで定義された構成情報は、フレームワークで定義された同じパラメーター名の値を上書きします。

3 番目の場所: 構成ファイルを作成し、そのファイルに構成情報を書き込みます (これは Python ソース ファイルなので、Python コードを記述するのと同じです)。

gunicorn -h を介してすべてのコマンド構成情報を表示します

公式ドキュメントを介してさらに詳細な情報を表示することもできます: http://docs.gunicorn.org/en/19.2/

上記の myapp の例に基づく

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

上記のコマンドは 4 つのワーカーを開始し、127.0.0.1:8000 にバインドします

または、構成ファイルを次のように使用することもできますこれは config.py 設定ファイルのソース コードです:

import multiprocessing

bind = "127.0.0.1:8001"
workers = multiprocessing.cpu_count() * 2 + 1
ログイン後にコピー

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

4. gunicorn フレームワークの紹介

     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;
        }
ログイン後にコピー
六、监控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
ログイン後にコピー

       

    

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

京東モールAPPで実名認証を行う方法 京東モールAPPで実名認証を行う方法 Mar 19, 2024 pm 02:31 PM

京東モールAPPで実名認証を取得するにはどうすればよいですか?京東モールは多くの友人がよく利用するオンライン ショッピング プラットフォームですが、充実したサービスを享受し、より良いショッピング体験を得るために、買い物をする前に全員が実名認証を行うことが最善です。以下はJD.comの実名認証方法です。ネチズンの参考になれば幸いです。 1. JD.com をインストールして開き、個人アカウントにログインします。 2. 次に、ページの下部にある [マイ] をクリックして、個人センター ページに入ります。 3. 次に、ページ内の小さな [設定] アイコンをクリックします。右上隅をクリックして設定機能インターフェイスに移動します; 4. [アカウントとセキュリティ] を選択してアカウント設定ページに移動します; 5. 最後に、[実名認証] オプションをクリックして実名情報を入力します; 6. . インストール システムでは、実際の個人情報を入力し、実名認証を完了する必要があります。

Django vs. Flask: Python Web フレームワークの比較分析 Django vs. Flask: Python Web フレームワークの比較分析 Jan 19, 2024 am 08:36 AM

Django と Flask はどちらも Python Web フレームワークのリーダーであり、それぞれに独自の利点と適用可能なシナリオがあります。この記事では、これら 2 つのフレームワークを比較分析し、具体的なコード例を示します。開発の概要 Django はフル機能の Web フレームワークであり、その主な目的は、複雑な Web アプリケーションを迅速に開発することです。 Django は、ORM (オブジェクト リレーショナル マッピング)、フォーム、認証、管理バックエンドなどの多くの組み込み機能を提供します。これらの機能により、Django は大規模なデータを処理できるようになります。

香港Apple ID登録の手順と注意点(香港Apple Storeならではのメリットを享受) 香港Apple ID登録の手順と注意点(香港Apple Storeならではのメリットを享受) Sep 02, 2024 pm 03:47 PM

Appleの製品とサービスは、常に世界中のユーザーに愛され続けています。香港 Apple ID を登録すると、ユーザーはさらに便利になり、特典が得られます。香港 Apple ID の登録手順と注意点を見てみましょう。香港 Apple ID の登録方法 Apple デバイスを使用する場合、多くのアプリケーションや機能では、Apple ID を使用してログインする必要があります。香港からアプリケーションをダウンロードしたり、香港 AppStore の優待コンテンツを楽しみたい場合は、香港の Apple ID を登録することが非常に必要です。この記事では香港のApple IDの登録手順と注意点を詳しく解説します。手順: 言語と地域を選択します。Apple デバイスで「設定」オプションを見つけて、次のように入力します。

Django フレームワークの長所と短所: 知っておくべきことすべて Django フレームワークの長所と短所: 知っておくべきことすべて Jan 19, 2024 am 09:09 AM

Django は、Web 開発ライフサイクルのあらゆる側面をカバーする完全な開発フレームワークです。現在、このフレームワークは世界中で最も人気のある Web フレームワークの 1 つです。 Django を使用して独自の Web アプリケーションを構築する場合は、Django フレームワークの長所と短所を理解する必要があります。具体的なコード例も含め、知っておくべきことはすべてここにあります。 Django の利点: 1. 迅速な開発 - Django は Web アプリケーションを迅速に開発できます。豊富なライブラリと内部を提供します。

チャイナユニコムアプリでデータパッケージをキャンセルする方法 チャイナユニコムでデータパッケージをキャンセルする方法 チャイナユニコムアプリでデータパッケージをキャンセルする方法 チャイナユニコムでデータパッケージをキャンセルする方法 Mar 18, 2024 pm 10:10 PM

チャイナユニコムアプリはみんなのニーズを簡単に満たします。ニーズを解決するためのさまざまな機能があります。さまざまなサービスを処理したい場合は、ここで簡単に行うことができます。必要がない場合は、ここで時間内に購読を解除できます。携帯電話を利用していると、データ容量が足りないと感じて追加でデータパックを購入したものの、翌月には必要ないのですぐに退会したいという方も多いのではないでしょうか。必要な友達が来て利用できるように、退会方法を提供しています。 China Unicom アプリで、右下隅にある「My」オプションを見つけてクリックします。 「My」インターフェースで「My Services」列をスライドし、「注文しました」オプションをクリックします。

Django バージョンをアップグレードする方法: 手順と考慮事項 Django バージョンをアップグレードする方法: 手順と考慮事項 Jan 19, 2024 am 10:16 AM

Django バージョンをアップグレードする方法: 手順と考慮事項、必要な特定のコード例 はじめに: Django は、より優れたパフォーマンスとより多くの機能を提供するために継続的に更新およびアップグレードされる強力な Python Web フレームワークです。ただし、古いバージョンの Django を使用している開発者にとって、Django のアップグレードはいくつかの課題に直面する可能性があります。この記事では、Djangoのバージョンアップの手順や注意点、具体的なコード例を紹介します。 1. Djan をアップグレードする前にプロジェクト ファイルをバックアップします。

マルチポイントアプリで請求書を発行する方法 マルチポイントアプリで請求書を発行する方法 Mar 14, 2024 am 10:00 AM

請求書は買い物券として、私たちの日常生活や仕事に欠かせないものです。では、普段買い物に Duodian アプリを使用する場合、Duodian アプリで簡単に請求書を発行するにはどうすればよいでしょうか?以下では、この Web サイトの編集者が、マルチポイント アプリで請求書を開くための詳細なステップバイステップ ガイドを提供します。さらに詳しく知りたいユーザーは、必ずお見逃しなく。テキストに従って詳細を確認してください。 [請求書センター]の[マルチポイントスーパー/フリーショッピング]をクリックし、注文完了ページで請求書が必要な注文を選択し、[次へ]をクリックして[請求書情報]、[受取人情報]を入力し、[クリック]をクリックします。正しいことを確認して送信し、数分後に受信メールボックスに入り、メールを開き、電子請求書のダウンロードアドレスをクリックし、最後に電子請求書をダウンロードして印刷します。

Blackmagic のプロレベルのビデオ アプリが Android に登場しましたが、あなたの携帯電話ではおそらく実行できません Blackmagic のプロレベルのビデオ アプリが Android に登場しましたが、あなたの携帯電話ではおそらく実行できません Jun 25, 2024 am 07:06 AM

Blackmagic Design は、好評を博した Blackmagic Camera アプリをついに Android に導入しました。プロ仕様のビデオ カメラ アプリは無料でダウンロードでき、完全な手動制御が可能です。これらのコントロールは、プロレベルの cin を簡単に摂取できるようにすることを目的としています。

See all articles