Gunicornの設定ファイルを勉強するの巻(うまく起動せず)


gunicornインストール – i2bsの日記
CentOS上でFlaskをpython3.4、Gunicorn + Nginxで動かす。 – Qiita
を参考にGunicornの勉強をしつつ、実験。

$ sudo groupadd -g 2002 gunicorn
-gオプションで、新規グループのID番号を指定。上記は2002番。

$ sudo useradd -u 2002 -g gunicorn -d /home/gunicorn -m -s /bin/bash gunicorn
-uオプションで新規のユーザID番号を指定。上記は2002番。-dオプションでログインディレクトリ指定。-mオプションでホームディレクトリの自動作成。-sオプションでユーザのログインシェルを指定。

$ sudo mkdir -p /usr/local/gunicorn/{conf,logs}
-pオプションで指定したディレクトリをサブディレクトリごと作成。上記はconfとlogsが出来上がる。

設定ファイル作成。
$ sudo vi /usr/local/gunicorn/conf/gunicorn.conf.py

gunicornの設定ファイルの権限をユーザgunicornに与える。
chown -R gunicorn. /usr/local/gunicorn
-Rオプションは再帰的に処理(ディレクトリがあったら同じように処理するということ)。

で、設定ファイルの中を読みながら理解。
bind = 'unix:/tmp/gunicorn.sock'
sockがよく分からない。調べているときにたまにでてきたので、ちょっと調査。

ソケット

ソケットプログラミング HOWTO — Python 3.4.2 ドキュメント
がまとまっていてわかりやすかった。後者はちょっと難しくて、理解できてないところ多いけど。

で、
nginxとgunicornとsupervisorを連携させる – saito’s blog
を読むと、上記の設定だと、Nginxの設定も必要かなと。gunicorn単体なら問題なさそう。

次に気になったのは、
umask = 0002
このコマンドを入力後に作成したファイルは、グループ全体の権限が付与されるようです。
参考:デフォルトのパーミッション | Firegoby
ふむふむ。

あとは、なんとなくそのままかなと。

とりあえず、gunicornを動かしてみる。
$ gunicorn --config /usr/local/gunicorn/conf/gunicorn.conf.py appname.wsgi
がエラー。
File "/usr/local/gunicorn/conf/gunicorn.conf.py", line 25
umask = 0002
^
SyntaxError: invalid token

とりあえず、umask = 0002部分をコメントアウトして起動しようとしたけど失敗。

bind = '127.0.0.0.1:8000'
に変更したけど失敗。

起動してない感じ。

原因なんだろうなあ。今日はここまで。