KnowHow

技術的なメモを中心にまとめます。
検索にて調べることができます。

gunicorn と Nginxを使って、DjagoとFlaskのアプリケーションを同時に公開する手順について

登録日 :2024/02/10 06:39
カテゴリ :Linux

以下は、GunicornとNginxを使用してDjangoとFlaskのアプリケーションを同時に公開する手順です。

Djangoアプリケーションの設定:

  • Djangoアプリケーションをセットアップし、Gunicornで実行するための準備をします。
  • Gunicornの設定ファイルを作成し、Djangoアプリケーションを指定のポートで実行します。

Flaskアプリケーションの設定:

  • Flaskアプリケーションをセットアップし、同様にGunicornで実行するための準備をします。
  • Gunicornの設定ファイルを作成し、Flaskアプリケーションを別のポートで実行します。

Nginxの設定:

  • Nginxの設定ファイルに、DjangoアプリケーションとFlaskアプリケーションのためのリバースプロキシを設定します。
  • リバースプロキシは、Nginxが受信したリクエストをGunicornのポートに転送します。

UNIXドメインソケットの使用:

  • DjangoアプリケーションとFlaskアプリケーションのそれぞれのGunicorn設定ファイルで、UNIXドメインソケットを使用して通信するように設定します。
  • これにより、NginxからのリクエストがGunicornのUNIXソケットにルーティングされます。

サービスの起動:

  • DjangoアプリケーションとFlaskアプリケーションのそれぞれのGunicornサーバーを起動します。

Nginxの再起動:

  • Nginxを再起動して、設定変更を反映させます。

これらの手順を実行すると、DjangoとFlaskのアプリケーションが同時に公開されます。Nginxがリバースプロキシとして機能し、受信したリクエストを適切なGunicornサーバーにルーティングします

設定ファイルの保管場所

サービスファイルとソケットファイル

.service ファイルと .socket ファイルは通常、/etc/systemd/system/ ディレクトリに配置されます。これは、systemdがサービスの管理と実行を行うための標準的な場所です。したがって、gunicorn.service や gunicorn.socket などのファイルをこのディレクトリに配置することが一般的です。

Nginxの設定ファイル
  • nginx.conf
    nginx.conf ファイルの場所は、一般的に以下の場所にあります。

Linux: /etc/nginx/nginx.conf
macOS: /usr/local/etc/nginx/nginx.conf

  • /etc/nginx/sites-available と /etc/nginx/sites-enabled
    Nginxの仮想ホスト(サーバーブロック)の設定ファイルを管理するためのディレクトリです。

sites-available: ここには、使用可能なすべての仮想ホストの設定ファイルが配置されます。サイトを有効にするには、このディレクトリ内の設定ファイルを /etc/nginx/sites-enabled にシンボリックリンクとして追加します。

sites-enabled: 有効な仮想ホストの設定ファイルがここに配置されます。実際にNginxが読み込む設定ファイルはここにあるシンボリックリンクです。このディレクトリ内のファイルが変更されると、Nginxを再起動する必要があります。

これにより、Nginxは sites-available の設定ファイルを参照して、どの仮想ホストを有効にするかを決定します。このアプローチにより、サイトの追加や変更を簡単に管理できます。