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

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

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

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

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