Gunicornを設定してPython Webアプリケーションを提供する方法

この記事では、リバースプロキシとしてGunicornとNginxを使用してPython Webアプリケーションを提供するようにVPSを設定します。GunicornへのDoS攻撃を防ぐためにGunicornを直接提供するのではなく、Nginxをリバースプロキシとして使用します。Nginxを使用すると、パフォーマンスが向上し(プロキシバッファリングを使用)、より多くのリクエストが処理されます。

入門

このチュートリアルは、Ubuntu 14.04以降がインストール、更新、保護されたVMをすでに持っていることを前提としています。

  • NginxインスタンスはHTTPポート80で実行されます(ただし、HTTPSに簡単にアップグレードできます)。
  • このサンプルPythonアプリはポート8080でリッスンします。このポートは、リモートアクセスを防ぐためにiptablesで閉じられます。
  • このチュートリアルは、最小限の変更で他のディストリビューションで実行できるはずです。

インストールpipvirtualenv

apt-get install python-pip python-virtualenv

ポート8080を閉じます。GunicornにはNginxからのみ到達できます。

iptables -A INPUT -p tcp --destination-port 8080 -j DROP

新しいフォルダを作成し、アプリケーションを構成します。Flaskフレームワークを使用します。

mkdir /var/www-folder/
cd /var/www-folder/
virtualenv exampleapp
source exampleapp/bin/activate
cd exampleapp
pip install gunicorn
pip install flask

アプリケーションファイルを作成します。

nano myapplication.py 

以下を内部に貼り付けます。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, Vultr!'

これにより、「Hello、Vultr!」という簡単なページが生成されます。誰かがページにアクセスしたとき。では、Gunicornを起動します。xVMのCPUコア数の2倍に置き換えます。

gunicorn -w x myapplication:app &

Nginxをインストールし、リバースプロキシを構成します。

deactivate
apt-get install nginx
nano /etc/nginx/sites-enabled/default

location / {行を検索し、括弧内のコンテンツを次のコンテンツに置き換えます。

proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8000/;

この構成は、実際のリクエストとともにいくつかの情報(HTTPプロトコル、リモートIPアドレス)をGunicornサーバーに転送するようにNginxに指示します。Nginxをリロードします。

service nginx reload

この時点で、Gunicornアプリケーションは適切に構成されています。にあるWebブラウザを使用してアクセスできますhttp://your-vps-ip/



Leave a Comment

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、