[概要]
サーバー上でdjangoアプリをサービスから起動できずに困っています。
[詳細]
サーバー上にdjangoアプリのデプロイを行っています。
クライアントの入り口にnginxを設置、そこからvirtualenv上のpythonにインストールした
gunicronを経由してdjangoと繋ぐことを考えています。
このとき各種機能は全て一つのサーバーの中に設置してあります。(機能毎にサーバーをわけていません。)
またnginxとvirtualenvとはUNIX ドメインソケットでの接続を考えています。
発生している問題・エラーメッセージ
現在、gunicorn.socketのサービス登録を行い、ブラウザ経由で閲覧しようとすると下記のエラーが表示されます。
.
"400 Bad Request"
これを目的であるブラウザから受けたリクエストをgunicorn.socketに繋ぎ、
socketにアクセスを受けた時に自動でserviceを起動してdjangoへと繋ぐというようにしたいです。
.
該当のソースコード
socketとsrviceの記述は下記のようになっております。
/etc/systemd/system/gunicorn.socket
Python
1[Unit] 2Description=gunicorn socket 3[Socket] ListenStream=/run/gunicorn.sock 4[Install] WantedBy=sockets.target
/etc/systemd/system/gunicorn.service
Python
1[Unit] 2Description=gunicorn daemon 3Requires=gunicorn.socket 4After=network.target 5[Service] 6 User=XXXXX 7 Group=www-data 8 WorkingDirectory=/home/xxx/yyy/zzz/ 9 ExecStart=/home/xxx/yyy/zzz/venv/bin/gunicorn \ 10 --access-logfile - \ 11 --workers 3 \ 12 --bind unix:/run/gunicorn.sock \ 13 zzz_project.wsgi:application 14 15[Install] WantedBy=multi-user.target 16
試したこと
下記コマンドでguniconをデーモン起動すると、ブラウザ上で意図したdjangoアプリの動作を確認できています。
sudo /home/xxx/yyy/zzz/venv/bin/gunicorn --daemon --bind unix:/run/gunicorn.sock zzz_project.wsgi:application
nginxのステータスは下記の通り
sudo systemctl status nginx nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2020-10-12 14:59:06 JST; 1h 32min ago Docs: man:nginx(8) Main PID: 7393 (nginx) Tasks: 2 (limit: 1074) Memory: 5.4M CGroup: /system.slice/nginx.service ├─7393 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; └─7416 nginx: worker process 10月 12 14:59:06 servername.guest systemd[1]: Starting A high performance web server and a reverse proxy server... 10月 12 14:59:06 servername.guest systemd[1]: Started A high performance web server and a reverse proxy server.
gunicornのステータスは下記の通り
● gunicorn.service - gunicorn daemon Loaded: loaded (/etc/systemd/system/gunicorn.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2020-10-12 16:34:01 JST; 3s ago TriggeredBy: ● gunicorn.socket Main PID: 7864 (gunicorn) Tasks: 4 (limit: 1074) Memory: 108.1M CGroup: /system.slice/gunicorn.service ├─7864 /home/xxx/yyy/zzz/venv/bin/python3 /home/xxx/yyy/zzz/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock car_> ├─7876 /home/xxx/yyy/zzz/venv/bin/python3 /home/xxx/yyy/zzz/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock car_> ├─7877 /home/xxx/yyy/zzz/venv/bin/python3 /home/xxx/yyy/zzz/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock car_> └─7878 /home/xxx/yyy/zzz/venv/bin/python3 /home/xxx/yyy/zzz/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock car_> 10月 12 16:34:01 servername.guest systemd[1]: Started gunicorn daemon. 10月 12 16:34:02 servername.guest gunicorn[7864]: [2020-10-12 16:34:02 +0900] [7864] [INFO] Starting gunicorn 20.0.4 10月 12 16:34:02 servername.guest gunicorn[7864]: [2020-10-12 16:34:02 +0900] [7864] [INFO] Listening at: unix:/run/gunicorn.sock (7864) 10月 12 16:34:02 servername.guest gunicorn[7864]: [2020-10-12 16:34:02 +0900] [7864] [INFO] Using worker: sync 10月 12 16:34:02 servername.guest gunicorn[7876]: [2020-10-12 16:34:02 +0900] [7876] [INFO] Booting worker with pid: 7876 10月 12 16:34:02 servername.guest gunicorn[7877]: [2020-10-12 16:34:02 +0900] [7877] [INFO] Booting worker with pid: 7877 10月 12 16:34:02 servername.guest gunicorn[7878]: [2020-10-12 16:34:02 +0900] [7878] [INFO] Booting worker with pid: 7878
補足情報(FW/ツールのバージョンなど)
各種バージョンは下記のとおりとなっております。
[構成]
OS Ubuntu 20.04 LTS
nginx 1.18.0
virtualenv 20.0.17
Python 3.8.2
Django 3.0.8
gunicorn 20.0.4
乱文乱筆で申し訳ありませんが、どなたかポイント等をご教示いただけますと幸いです。
あなたの回答
tips
プレビュー