質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
Gunicorn

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

Django

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

nginx

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

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

2回答

2221閲覧

nginx/gunicorn使ってて、502 Bad Gatewayになる

cunwe

総合スコア65

Gunicorn

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

Django

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

nginx

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

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2021/11/09 09:42

編集2021/11/09 11:19

環境

Ubuntu 18.04.7

やりたいこと

nginx、gunicorn、GCPに立てたインスタンスでDjangoのアプリケーションを動かしたい。

現状

502 Bad Gatewayとなってしまい、アプリケーションが表示されません。nginxとgunicornはちゃんと動いているのかなと思い、確認してみましたが問題なさそうなのです。ps aux | grep nginxps aux | grep gunicornの実行結果がこちらです。デバッグの仕方がわからず、何か試せることがございましたらおっしゃっていただけますと幸いです。

root 15578 0.0 0.0 141124 1592 ? Ss Nov03 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; www-data 15582 0.0 0.1 143808 6316 ? S Nov03 0:00 nginx: worker process hoge+ 28114 0.0 0.0 14860 1072 pts/0 S+ 09:20 0:00 grep --color=auto nginx
hoge+ 15791 0.0 0.6 40888 23280 ? Ss Nov03 1:10 /home/hogehoge/anaconda3/envs/blog-django/bin/python /home/hogehoge/anaconda3/envs/blog-django/bin/gunicorn - -access-logfile - --workers 3 --bind unix:/home/hogehoge/blog_django/blog_django.sock mysite.wsgi:application hoge+ 15809 0.0 1.0 69084 38700 ? S Nov03 0:06 /home/hogehoge/anaconda3/envs/blog-django/bin/python /home/hogehoge/anaconda3/envs/blog-django/bin/gunicorn - -access-logfile - --workers 3 --bind unix:/home/hogehoge/blog_django/blog_django.sock mysite.wsgi:application hoge+ 15814 0.0 1.0 69084 38700 ? S Nov03 0:06 /home/hogehoge/anaconda3/envs/blog-django/bin/python /home/hogehoge/anaconda3/envs/blog-django/bin/gunicorn - -access-logfile - --workers 3 --bind unix:/home/hogehoge/blog_django/blog_django.sock mysite.wsgi:application hoge+ 15815 0.0 1.0 69084 38700 ? S Nov03 0:06 /home/hogehoge/anaconda3/envs/blog-django/bin/python /home/hogehoge/anaconda3/envs/blog-django/bin/gunicorn - -access-logfile - --workers 3 --bind unix:/home/hogehoge/blog_django/blog_django.sock mysite.wsgi:application hoge+ 28117 0.0 0.0 14860 1124 pts/0 S+ 09:20 0:00 grep --color=auto gunicorn

また、serviceファイル,socketファイル、nginxの設定を書いたconfファイルも載せます。

service

1[Unit] 2Description=gunicorn daemon 3After=network.target 4Requires=blog_django.socket 5[Service] 6User=hogehoge 7Group=hogehoge 8WorkingDirectory=/home/hogehoge/blog_django 9ExecStart=/home/hogehoge/anaconda3/envs/blog-django/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/hogehoge/blog_django/blog_django.sock mysite.wsgi:applicatio 10n 11[Install] 12WantedBy=multi-user.target

socket

1[Unit] 2Description=gunicorn socket 3[Socket] 4ListenStream=/home/hogehoge/blog_django/blog_django.sock 5SocketUser=hogehoge 6[Install] 7WantedBy=sockets.target

conf

1server { 2 server_name {外部IPアドレス}; 3 location / { 4 include proxy_params; 5 proxy_pass http://unix:/home/hogehoge/blog_django/blog_django.sock; 6 } 7}

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

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

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

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

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

TaichiYanagiya

2021/11/09 13:27

nginx の error_log に何かログが出ていないでしょうか?
cunwe

2021/11/09 14:17

ご質問ありがとうございます。確認してみましたら以下のようなのが大量に出力されておりました。mysite.sockではなくblog_django.sockなら存在しているのですが、gunicornの〇〇.serviceファイルと〇〇.socketファイルの〇〇って名前統一してないとまずいでしょうか...? 2021/11/09 13:30:12 [crit] 15582#15582: *1305 connect() to unix:/home/hogehoge/blog_django/mysite/mysite.sock failed (2: No such file or directory) while connecting to upstream, c lient: {なんかのIPアドレス}, server: {外部IPアドレス}, request: "GET /.env HTTP/1.1", upstream: "http://unix:/home/hogehoge/blog_django/mysite/mysite.sock:/.env", host: "{外部IPアドレス}"
guest

回答2

0

ベストアンサー

nginx で /home/hogehoge/blog_django/blog_django.sock に接続する設定になっているにもかかわらず、/home/hogehoge/blog_django/mysite/mysite.sock に接続しようとしてエラーとなっています。
後者の設定が別にあって、そちらが優先されているのか、あるいは、設定変更後、nginx を再起動していないのではないでしょうか?

投稿2021/11/10 05:52

TaichiYanagiya

総合スコア12141

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

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

cunwe

2021/11/10 09:50

再起動してないことが原因のようでした、```$ sudo nginx -s reload```を実行しましたところ表示されるようになりました...!初歩的なことお伺いしてすいませんでした、ありがとうございます!助かりました(_ _)
guest

0

systemctl stauts [service名].serviceでどうなっているか確認してみてはいかがでしょうか?

投稿2021/11/09 18:14

kyokio

総合スコア560

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

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

cunwe

2021/11/10 02:08 編集

ご回答ありがとうございます。実行してみましたが特にfailしてなさそうなのです。。 ``` ● mysite.service - gunicorn daemon Loaded: loaded (/etc/systemd/system/mysite.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-11-03 15:43:30 UTC; 6 days ago Main PID: 15791 (gunicorn) Tasks: 4 (limit: 4364) CGroup: /system.slice/mysite.service ├─15791 /home/hogehoge/anaconda3/envs/blog-django/bin/python /home/hogehoge/anaconda3/envs/blog-django/bin/gunicorn --access-logfile - --workers 3 --bind unix:/hom ├─15809 /home/hogehoge/anaconda3/envs/blog-django/bin/python /home/hogehoge/anaconda3/envs/blog-django/bin/gunicorn --access-logfile - --workers 3 --bind unix:/hom ├─15814 /home/hogehoge/anaconda3/envs/blog-django/bin/python /home/hogehoge/anaconda3/envs/blog-django/bin/gunicorn --access-logfile - --workers 3 --bind unix:/hom └─15815 /home/hogehoge/anaconda3/envs/blog-django/bin/python /home/hogehoge/anaconda3/envs/blog-django/bin/gunicorn --access-logfile - --workers 3 --bind unix:/hom Nov 03 15:43:30 blog-django systemd[1]: Started gunicorn daemon. Nov 03 15:43:30 blog-django gunicorn[15791]: [2021-11-03 15:43:30 +0000] [15791] [INFO] Starting gunicorn 20.1.0 Nov 03 15:43:30 blog-django gunicorn[15791]: [2021-11-03 15:43:30 +0000] [15791] [INFO] Listening at: unix:/home/hogehoge/blog_django/blog_django.sock (15791) Nov 03 15:43:30 blog-django gunicorn[15791]: [2021-11-03 15:43:30 +0000] [15791] [INFO] Using worker: sync Nov 03 15:43:30 blog-django gunicorn[15791]: [2021-11-03 15:43:30 +0000] [15809] [INFO] Booting worker with pid: 15809 Nov 03 15:43:30 blog-django gunicorn[15791]: [2021-11-03 15:43:30 +0000] [15814] [INFO] Booting worker with pid: 15814 Nov 03 15:43:31 blog-django gunicorn[15791]: [2021-11-03 15:43:31 +0000] [15815] [INFO] Booting worker with pid: 15815 ```
kyokio

2021/11/10 02:24

nginxも動いているのであれば、setting.pyでデバッグをTrueにして実行すれば、エラー内容がわかると思います。 (他の人に見られたくない場合は、IPアドレスでフィルターかけたりなどして)
cunwe

2021/11/10 09:51

そういった方法があるのですね、勉強になります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問