🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Gunicorn

Gunicorn (Green Unicorn)は、Rubyのunicornをベースに開発されたUNIX向けのPython製HTTPサーバです。他のライブラリとの依存関係がないため、容易にインストールして使用できます。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

2回答

2157閲覧

Djangoで作成したアプリケーションの変更内容をgit pullして本番環境(EC2)に反映させるとGunicornが動かない

Murasaki_PurPle

総合スコア37

Gunicorn

Gunicorn (Green Unicorn)は、Rubyのunicornをベースに開発されたUNIX向けのPython製HTTPサーバです。他のライブラリとの依存関係がないため、容易にインストールして使用できます。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2021/02/20 12:02

編集2021/02/20 13:16

変更内容をgit pullして本番環境(EC2)に反映させたい

現在Djangoを使って作成したwebアプリケーションをAWSのEC2上に置いて動作させたいと考えています。
クライアント側で変更した内容をGitHub上に上げ、EC2側でgit pullしたのですが どうやらGunicornが動かなくなってしまったようです。

Linux

1(QuantumGun) [app_admin@ip-xxxxxxxxx QuantumGun]$ ps ax | grep gunicorn 214595 pts/0 S+ 0:00 grep --color=auto gunicorn

上記を解決するために、以下URLを参考にGunicornを再起動しようと考えたのですが、うまくいかずに困っています。
Gunicornのreload

入力したスクリプトは以下です

Linux

1sudo killall gunicorn 2sudo systemctl daemon-reload 3sudo systemctl restart nginx 4sudo systemctl restart YourProjectName(QuantumGun) 5 6Failed to restart QuntumGun.service: Unit not found.

お忙しい中恐縮ですが、解決方法をご教示いただけないでしょうか。

環境

クライアント : Macbook
製品 : AWS EC2
OS : Linux
Webサーバー:Nginx
APサーバー:Gunicorn

いつもありがとうございます

私が独学を貫けているのは、皆様のおかげに他なりません。
どうか今回も力を貸していただけないでしょうか。どうぞよろしくお願いいたします。

補足 2021-02-20

gunicornをデーモンモードで起動する方法はすでに試しています。

Linux

1(QuantumGun) [app_admin@ip-xxxx QuantumGun]$ gunicorn --bind 127.0.0.8000 QuntumGun/wsgi -D 2(QuantumGun) [app_admin@ip-xxxx QuantumGun]$ ps ax | grep gunicorn 316996 pts/0 S+ 0:00 grep --color=auto gunicorn

それでも、まだうまくいかないようでして...

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

手元にgunicornを入れてないので実際に動作確認などしてないのですが、気付いたことを1つだけ。

「gunicornをデーモンモードで起動する方法」として以下のコマンドが示されています。

gunicorn --bind 127.0.0.8000 QuntumGun/wsgi -D

単純な誤記かもしれませんが「--bind」に設定する値は「127.0.0.8000」ではなく「127.0.0.1:8000」かと思います。

なお、guniconのドキュメントを見ると「--error-logfile FILE」「--log-level LEVEL」「--log-config FILE」でコマンド実行時にログ回りの設定を指定できるようなので、ログ設定を調整して取得できる情報を増やして、何が起きているか確認されると、解決の糸口が見つかるかもしれません。

参考: Settings — Gunicorn 20.1.0 documentation

投稿2021/03/03 00:47

msiz07

総合スコア172

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Murasaki_PurPle

2021/03/14 14:55

>「127.0.0.8000」ではなく「127.0.0.1:8000」かと思います。 失礼いたしました。単純な誤記です。Linux上では正しくコマンドを入れています(がダメでした)。 >guniconのドキュメントを見ると「--error-logfile FILE」「--log-level LEVEL」「--log-config FILE」でコマンド実行時にログ回りの設定を指定できる 試してみましたが何も起こりませんでした... 単にcuiで「--error-logfile FILE」と入れるだけで実行可能なコマンドなのでしょうか。「--error-logfile FILE」の前に何か付けたりしますか?(レベルの低い質問だったらすいません...
msiz07

2021/03/14 16:17

手元にgunicornを試す環境がないので動作確認していませんが、「--error-logfile FILE」などは「gunicorn」コマンドに与える引数だと思います。 例えば「gunicorn --bind 127.0.0.1:8000 QuntumGun.wsgi -D」に対して「エラーログを/tmp/errlog-1.logに保存する」という指定を追加したいときは、以下のような感じのコマンドになります。 gunicorn --bind 127.0.0.1:8000 --error-logfile /tmp/errllog-1.log QuntumGun.wsgi -D 引数に関する詳細は、元のコメントでも示している、以下のリンク先を参照ください。 https://docs.gunicorn.org/en/latest/settings.html#settings
guest

0

Amazon Linux (1も2も同じはず) での gunicorn の起動、終了ですが、私は以下のコマンドで行なっています。
※紹介いただいたQiita記事のコマンドは初めて見ました。

 
起動

Terminal

1(venv_プロジェクト名)$ gunicorn --bind 127.0.0.1:8000 プロジェクト名.wsgi -D

 

 
停止

Terminal

1(venv_プロジェクト名)$ pkill gunicorn

 
ステータス確認

Terminal

1(venv_プロジェクト名)$ ps ax | grep gunicorn

 

ご参照(拙書):

【Python/Django】よく使うコマンドのまとめ(4)-後編- <本番運用:Amazon EC2 (Amazon Linux 2)>

投稿2021/02/20 13:03

編集2021/02/21 01:47
_whitecat_22

総合スコア1305

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Murasaki_PurPle

2021/02/20 13:13

_whitecat_22様 早速の回答ありがとうございます。 説明不足で申し訳ございませんでした。頂いた起動方法はすでに試しています。 それでもgunicornが起動しない状態です。 質問文を修正いたしました。 ご指摘ありがとうございます。
_whitecat_22

2021/02/21 01:49

そうでしたか、それは大変失礼いたしました。 EC2自体を再起動、もしくは停止→開始しても変わりませんか?
Murasaki_PurPle

2021/03/14 04:59

返信が遅くなってしまい申し訳ございませんでした。 EC2自体の再起動 及び停止→開始も行いました。変わらずでした。
_whitecat_22

2021/03/14 08:18

そうでしたか、、 直接gunicornとは関係ありませんが、nginxのrestartコマンドは後ろに「.service」が付いたはず sudo systemctl restart nginx.service もし、これで上手く行かなければ、 sudo systemctl start nginx.service として単純に立ち上げると良いです 肝心の gunicorn ですが、 gunicorn --bind 127.0.0.1:8000 QuntumGun.wsgi -D で再度起動してみてもダメでしょうか。 (おそらく追記していただいコマンドは誤記だと思います)
Murasaki_PurPle

2021/03/14 14:59

>gunicorn --bind 127.0.0.1:8000 QuntumGun.wsgi -D 回答ありがとうございます。 ご指摘いただいた内容ですが、単なる誤記です。失礼いたしました。 Linux上では正しく入力しています(ダメでした)。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問