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にバインドされます。