0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

備忘録【Django】EC2でデプロイ後の更新方法(EC2×Django×Nginx×Gunicornの構築)

Posted at

Djangoで作成したWebアプリのデプロイ後の更新時に少し躓いたので備忘録として書いています。
サーバー上のDjangoファイルを更新したあとの処理です。

動作環境

EC2(Linux)
Django3.8
Nginx:1
Gunicorn:20.1.0

結論

ファイルを更新しただけでは反映されないので以下を行う必要がある
1.EC2の再起動
2.gunicornの再起動
3.nginxの再起動

前提

・すでにDjangoWebアプリをEC2でデプロイされている
・その上でEC2のプログラムを更新した

EC2を再起動

EC2インスタンスのコンソール画面に行き、インスタンスを再起動する

Gunicornを再起動

Guniconの停止

再起動の前に一度Gunicornを停止します
Gunicornを再起動する場合は、一度停止してから再度、起動が必要です

sudo pkill gunicorn

再起動

仮想環境を有効にし、projectアプリケーションを含むディレクトリ(manage.pyコマンドを実行する時のディレクトリ)に移動してGunicornを再起動する
*xxxxxx部分は自身のDjangoプロジェクト名です

gunicorn --bind 0.0.0.0:8000 xxxxxx.wsgi -D

xxxxxx.wsgi とする事で、projectアプリケーション内のwsgi.pyを参照させています
0.0.0.0:8000と指定する事で、Djangoにバインド(紐付ける)させています
-Dのオプションをつける事で、バックグラウンドでGunicornを起動させます

起動確認

以下のコマンドを実行するとプロセスが立ち上がっているか確認できます。

ps ax|grep gunicorn

こんな感じになればOK

 3597 ?        S      0:09 /home/ec2-user/venv/bin/python3 /home/ec2-user/venv/bin/gunicorn --bind 0.0.0.0:8000 xxxxxx.wsgi -D
 3600 ?        S      0:02 /home/ec2-user/venv/bin/python3 /home/ec2-user/venv/bin/gunicorn --bind 0.0.0.0:8000 xxxxxx.wsgi -D
11471 pts/0    S+     0:00 grep --color=auto gunicorn

Nginxを再起動

下記コマンドでNginxを再起動

sudo systemctl restart nginx.service

サイトをリロードし確認

問題なく表示されていれば完了

#参考とした記事

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?