KnowHow

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

gunicornとNginxを使用してDjangoとFlaskのアプリケーションを同時に公開するための設定ファイル(gunicorn.service)

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

以下は、DjangoとFlaskのそれぞれのGunicorn設定ファイルとNginx設定ファイルの例です。

gunicornのサービスファイル(/etc/systemd/system/)

  • DjangoのGunicorn設定ファイル (gunicorn_django.service)
[Unit]
Description=gunicorn daemon for Django
Requires=gunicorn_django.socket
After=network.target gunicorn_django.socket

[Service]
User=your_username
Group=www-data
WorkingDirectory=/path/to/your/django_project
ExecStart=/path/to/your/virtualenv/bin/gunicorn \
          --access-logfile - \
          --workers 3 \
          --bind unix:/run/gunicorn_django.sock \
          your_django_project.wsgi:application

[Install]
WantedBy=multi-user.target
  • FlaskのGunicorn設定ファイル (gunicorn_flask.service)
[Unit]
Description=gunicorn daemon for Flask
Requires=gunicorn_flask.socket
After=network.target gunicorn_flask.socket

[Service]
User=your_username
Group=www-data
WorkingDirectory=/path/to/your/flask_project
ExecStart=/path/to/your/virtualenv/bin/gunicorn \
          --access-logfile - \
          --workers 3 \
          --bind unix:/run/gunicorn_flask.sock \
          your_flask_app:app

[Install]
WantedBy=multi-user.target

これらのサービスファイルについて

この設定ファイルは、Gunicornをサービスとして実行するための systemd ユニットファイルです。各セクションの意味は次のとおりです:

[Unit]:

サービスの説明や依存関係を指定します。

Description: サービスの説明を記述します。
Requires: このサービスが依存するサービスを指定します。この場合、gunicorn.socketが必要です。
After: サービスが起動する前に完了している必要があるターゲットを指定します。この場合、network.targetが完了するまで待機します。

[Service]:

サービスの実行に関する設定を指定します。

User: サービスを実行するユーザーを指定します。
Group: サービスを実行するグループを指定します。
WorkingDirectory: サービスが実行されるディレクトリを指定します。
ExecStart: サービスを開始するコマンドを指定します。この場合、Gunicornを起動するコマンドが指定されています。--bindオプションでUNIXソケットを指定し、config.wsgi:applicationでWSGIアプリケーションを指定しています。

[Install]:

サービスをどのターゲットにインストールするかを指定します。

WantedBy: インストールするターゲットを指定します。この場合、multi-user.targetにインストールされます。
この設定ファイルは、gunicorn.socketサービスに依存しており、ネットワークターゲットが完了した後に実行されます。サービスはnonoユーザーとwww-dataグループで実行され、/home/nono/django2/myprojectディレクトリで作業し、指定されたコマンドでGunicornが起動されます。 Gunicornは3つのワーカーを起動し、/run/gunicorn.sockにバインドされます。