ホームページ  >  記事  >  バックエンド開発  >  Python でのデプロイメントの詳細な紹介

Python でのデプロイメントの詳細な紹介

零下一度
零下一度オリジナル
2017-07-23 10:09:581538ブラウズ

しばらくフラスコを勉強していましたが、デプロイしたことがなかったので、どうやってデプロイするかを考えていました。まずサービスを立ち上げましょう。ここでの選択は Flask+uwsgi+Nginx+Ubuntu です。私は Python 2.7.2 を選択しました。これは、ソフトウェア接続を介さずに学習するのが簡単だと思います。 Python3 で書かれています。これを理解したら、最適化は非常に簡単になります。実際、私は多くの原則についてあまり知りません。まずこれを設定して、内部のロジックをゆっくり理解しましょう。

Nginx

Nginx は、負荷分散として使用できる効率的な Web サーバーおよびリバース プロキシ サーバーです (n 人のユーザーがサーバーにアクセスすると、サーバーの負荷を軽減し、負荷を分散できます)。Apache と比較して、Nginx はサポートしています。同時実行性が高く、数百万の TCP 接続と数十万の同時接続をサポートできます。展開が簡単で、メモリ消費量が少なく、コストが低くなります。ただし、Nginx には Apache ほど多くのモジュールがありません。 Nginx は uWSGI の uwsgi プロトコルをサポートしているため、Nginx と uWSGI を組み合わせることができ、Nginx は動的コンテンツを処理のために uWSGI に渡します。 uwsgi_pass

公式ドキュメントはこちらです

最高のNginxチュートリアルはこちらです

uwsgi

uWSGIは、WSGIプロトコル、uwsgi、http、およびその他のプロトコルを実装するWebサーバーです。 Nginx の HttpUwsgiModule の機能は、uWSGI サーバーとのやり取りです。
WSGI / uwsgi / uWSGI の 3 つの概念の違いに注意してください。
  • 前のセクションを読んだ生徒は、WSGI が通信プロトコルであることを明確に理解しているでしょう。
  • uwsgi は通信プロトコルではなく回線プロトコルで、uWSGI サーバーと他のネットワーク サーバー間のデータ通信によく使用されます。
  • そして、uWSGIは、uwsgiとWSGIという2つのプロトコルを実装するWebサーバーです。
  • uwsgi プロトコルは、送信される情報の種類を定義するために使用される uWSGI パケットです。これは、WSGI とは 2 つの異なるものです。 。
準備、まず必要なパッケージをインストールしましょう まず、これは新しくインストールしたシステムなので、pip をインストールします
sudo apt-get install python-pip
次のコマンドを使用します。フラスコ

pip install flask
をインストールした後、

import flask

フラスコが正常にインストールされたことを証明するエラーは報告されません。したがって、次にしなければならないことは、ngnix と uwsgi をインストールすることです。

sudo apt-get install nginx
インストール後、まず、nginx をコマンドラインから直接起動します。シンプルかつ粗雑です

このようにして、nginx は正常に起動します。次に、pip を使用して uwsgi をインストールします

。インストールしたら、始めましょう

まず、helloflak の下にアプリの Python パッケージを作成します

#app/__init__.pyfrom flask import Flask
app = Flask(__name__)from app import view
次に、view.py

from app import app
@app.route('/')def index():return 'hellow'
を作成します。アプリと同じディレクトリにある場合は、Python を使用してプログラムをローカルでデバッグできます

次に、ブラウザでチェックアウトし、アドレスを入力してこれを取得できます。 この観点から見ると、次のようになります。フラスコプログラムでは問題ありません。

次に私たちがしなければならないことは、nginx に Web サービスを引き継がせることです。

ここでやっていることは、単純かつ無作法にnginx設定ファイルを削除することです

from app import appif __name__ == "__main__":
    app.run()

次に、helloflaskの下に設定ファイルを作成しました

$ sudo rm /etc/nginx/sites-enabled/default
少し説明します:server_nameはドメイン名にすることもできますし、 write ip Address、uwsgi_passはNginxとuwsgi間の通信方式を示します。ここで選択するのは指定されたポート番号です。

次に、設定を nginx にソフト接続しましょう。

server {
    listen      8081;
    server_name 127.0.0.1;
    charset     utf-8;
    client_max_body_size 75M;

    location / { try_files $uri @app; }
    location @app {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:9000;
    }
}
<code class="hljs groovy">sudo ln -s <span class="hljs-regexp"><span class="hljs-regexp">/home/liwanlei/Desktop/hellowflask/<span class="hljs-regexp">helloflask_nginx.conf /etc<span class="hljs-regexp">/nginx/conf.d/<br>这样我们再去启动我们的nginx,</span></span></span></span></code>

ここにあるのは歓迎ではなく、502 エラーです。現在の uwsgi ファイルがまだ構成されておらず、uwsgi を開始していないため、次のステップはこの uwsgi を取得することです。私設定。

sudo /etc/init.d/nginx restart
この時点で、uwsgi は設定されているので、それを開始しましょう、

[uwsgi]    
    base = /home/liwanlei/Desktop/hellowflask
    app = hello#module = %(app)pidfile = /var/run/uwsgi.pid
    master = true
    wsgi-file = /home/liwanlei/Desktop/hellowflask/hello.py
    pythonpath = /usr/bin/python
    chdir = /home/liwanlei/Desktop/hellowflask
    socket = 127.0.0.1:9000callable = app
    logto = %n.log
    plugins = python
    processes = 8master = true

我们去重新启动我们的nginx,

<code class="hljs bash">sudo nginx <span class="hljs-_">reload<br>平滑重启可以用用,重新加载配置文件,用新的工作进程代替旧的工作进程。<br></span></code>
sudo nginx -s reload
<code class="hljs bash"><span class="hljs-_"><br>启动后,我这里修改了地址,这里就可以直接访问了,那么我们的部署这样就算可以了,简单的。<br><img src="https://img.php.cn/upload/article/000/000/001/25f4d9be3a729ae5fc17c2fefb915c9c-3.jpg" alt=""></span></code>
 <br>

完工之后,感觉还是很简单的 有问题那么就去看log,只要log配置得当,那么排除错误是很快的。

以上がPython でのデプロイメントの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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