公式に載ってるやつだと上手くいかないので特筆。


結論から言うと下記コマンド。

uwsgi --chdir=/path/to/your/project \
    --module=mysite.wsgi:application \
    --env DJANGO_SETTINGS_MODULE=mysite.settings \
    --home=/path/to/virtual/env \
    --master --pidfile=/tmp/project-master.pid \
    --http=0.0.0.0:8088 \
    --processes=5 \
    --harakiri=20 \
    --max-requests=5000 \
    --vacuum \
    --buffer-size=32768

socket じゃなくて http。

buffer-sizeの指定が必要。

これやらないと↓のエラーが出る。

# buffer-size指定なしだとuwsgi側のログで↓
invalid request block size: 21573 (max 4096)...skip

# httpにしておかないと、ブラウザ側(Chrome)で↓
ERR_EMPTY_RESPONSE

socket指定はnginxでリバースプロキシ構成にしてdjangoにアクセスする場合。

直でブラウザからuwsgi叩く時はhttpにしておかないとダメ。

あとバッファがデフォで4kbで少ないので多めにセットしてあげないとほとんど動かない。

ファイルで指定の場合は↓の感じ。

[uwsgi]

chdir=/path/to/your/project
module=mysite.wsgi
home=/path/to/virtual/env
env=DJANGO_SETTINGS_MODULE=mysite.settings

http=0.0.0.0:8088
buffer-size=32768
master=true
max-requests=5000
processes=3
enable-threads=true
vacuum=true
env=LANG=en_US.UTF-8