Nginx 502 bad gateway runing django in uwsgi

500502djangonginxuwsgi

I tryed to restart a project in production and it stoped working. This is a django==1.5.1 and django-cms==2.4.1 project. I restarted because I've updated the project from django==1.4.1 to django==1.5.1, but as long as I know it doesn't change anything in wsgi.ini.

When I first reload the project it was raising a 500 error. Then I decided to remove my /tmp/zecaffe.sock to recreate it, then I restarted the project again, and now when I looked inside my error_zecaffe.log it is showing this error:

2013/05/03 16:16:35 [crit] 32378#0: *207 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 16:16:36 [crit] 32378#0: *207 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"

It seems that the emperor is not recreating another .sock file. Well this is my uwsgi.ini:

[uwsgi]

# caminho para o virtualenv no qual o projeto ira rodar
home = /home/infalms/.virtualenvs/zecaffe

# socket gerado no momento da inicializacao do uwsgi. Pode ser um servidor ou arquivo.sock.
# o socket estabelece a ponte de comunicacao entre as requisicoes que chegam no nginx/apache
# e as trasnfere para o projeto django especificado o projeto especificado no chdir
# neste caso esta sendo usado socket em arquivo
#socket = 127.0.0.1:8000
socket  = /tmp/zecaffe.sock

# define a que usuario o socket pertence. deve ser o mesmo usuario de execucao do
# Nginx definido no arquivo de configuracao do nginx. /etc/nginx/nginx.conf
uid = [user-name]
gid = [user-name]
chmod-socket = 777
chown-socket = [user-name]

# Esta a pasta do projeto
chdir = /home/infalms/webapps/zecaffe

logto = /var/log/uwsgi/zecaffe.com.br.log

# Carrega o arquivo de inicializacao do projeto, onde "meuprojeto" é a pasta e "wsgi"
# e o nome do arquivo wsgi.py contido dentro da pasta "meuprojeto".
module = zecaffe.wsgi

This is my uwsgi log file:

*** has_emperor mode detected (fd: 11) ***
[uWSGI] getting INI configuration from zecaffe.com.br.ini
*** Starting uWSGI 1.4.4 (64bit) on [Fri May  3 15:54:02 2013] ***
compiled with version: 4.6.3 on 20 January 2013 20:27:33
os: Linux-3.7.10-x86_64-linode30 #1 SMP Wed Feb 27 14:29:31 EST 2013
nodename: infalms
machine: x86_64
clock source: unix
detected number of CPU cores: 8
current working directory: /etc/uwsgi/vassals/enabled
detected binary path: /usr/local/bin/uwsgi
your processes number limit is 3870
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
uwsgi socket 0 inherited UNIX address /tmp/zecaffe.sock fd 3
Python version: 2.7.3 (default, Aug  1 2012, 05:25:23)  [GCC 4.6.3]
Set PythonHome to /home/infalms/.virtualenvs/zecaffe
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0xf05d20
your server socket listen backlog is limited to 100 connections
mapped 144784 bytes (141 KB) for 1 cores
*** Operational MODE: single process ***
WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0xf05d20 pid: 19117 (default app)
*** uWSGI is running in multiple interpreter mode ***
gracefully (RE)spawned uWSGI master process (pid: 19117)
spawned uWSGI worker 1 (pid: 32430, cores: 1)
Fri May  3 16:16:15 2013 - received message 1 from emperor
...gracefully killing workers...
Gracefully killing worker 1 (pid: 32430)...
binary reloading uWSGI...
chdir() to /etc/uwsgi/vassals/enabled
closing all non-uwsgi socket fds > 2 (max_fd = 1024)...
found fd 3 mapped to socket 0 (/tmp/zecaffe.sock)
running /usr/local/bin/uwsgi
*** has_emperor mode detected (fd: 11) ***
[uWSGI] getting INI configuration from zecaffe.com.br.ini
*** Starting uWSGI 1.4.4 (64bit) on [Fri May  3 16:16:16 2013] ***
compiled with version: 4.6.3 on 20 January 2013 20:27:33
os: Linux-3.7.10-x86_64-linode30 #1 SMP Wed Feb 27 14:29:31 EST 2013
nodename: infalms
machine: x86_64
clock source: unix
detected number of CPU cores: 8
current working directory: /etc/uwsgi/vassals/enabled
detected binary path: /usr/local/bin/uwsgi
your processes number limit is 3870
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
uwsgi socket 0 inherited UNIX address /tmp/zecaffe.sock fd 3
Python version: 2.7.3 (default, Aug  1 2012, 05:25:23)  [GCC 4.6.3]
Set PythonHome to /home/infalms/.virtualenvs/zecaffe
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0x6bbd20
your server socket listen backlog is limited to 100 connections
mapped 144784 bytes (141 KB) for 1 cores
*** Operational MODE: single process ***
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x6bbd20 pid: 19117 (default app)
*** uWSGI is running in multiple interpreter mode ***
gracefully (RE)spawned uWSGI master process (pid: 19117)
spawned uWSGI worker 1 (pid: 357, cores: 1)

This is my nginx config:

upstream zecaffe {
     #server 127.0.0.1:8000;
     server unix:///tmp/zecaffe.sock;
}

server {
    listen 80;
    server_name zecaffe.infalms.com.br; # dominio do projeto. Se for local, seta como localhost

    #client_body_in_file_only clean;
    #client_body_buffer_size 32K;
    client_max_body_size 20M;
    #sendfile on;
    #send_timeout 0s;

    error_log /var/log/nginx/error_zecaffe;
    access_log /var/log/nginx/access_zecaffe;

    location /media {
        autoindex    on;
        alias /home/infalms/webapps/zecaffe/zecaffe/media;      # your Django project's media files
    }

    location /static {
        autoindex    on;
        alias /home/infalms/webapps/zecaffe/zecaffe/static;     # your Django project's static files
    }

    # Finally, send all non-media requests to the Django server.
    location / {
        uwsgi_pass  zecaffe;
        include     /etc/nginx/uwsgi_params; # or the uwsgi_params you installed manually
    }

}

This my nginx error log (error_zecaffe):

2013/05/01 13:02:30 [error] 19146#0: *16798 upstream prematurely closed connection while reading response header from upstream, client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /favicon.ico/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/01 13:02:36 [error] 19146#0: *16798 upstream prematurely closed connection while reading response header from upstream, client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /favicon.ico/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/01 13:02:39 [error] 19146#0: *16800 upstream prematurely closed connection while reading response header from upstream, client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /favicon.ico/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/01 13:02:42 [error] 19146#0: *16806 upstream prematurely closed connection while reading response header from upstream, client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /favicon.ico/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/01 13:02:50 [error] 19146#0: *16809 upstream prematurely closed connection while reading response header from upstream, client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /favicon.ico/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/01 13:03:29 [error] 19146#0: *16818 upstream prematurely closed connection while reading response header from upstream, client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /favicon.ico/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/01 13:03:35 [error] 19146#0: *16812 open() "/home/infalms/webapps/zecaffe/zecaffe/static/ckeditor/ckeditor/skins/moono/skin.js" failed (2: No such file or directory), client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /static/ckeditor/ckeditor/skins/moono/skin.js?t=B8DJ5M3 HTTP/1.1", host: "zecaffe.infalms.com.br", referrer: "http://zecaffe.infalms.com.br/admin/core/noticia/add/"
2013/05/01 13:03:35 [error] 19146#0: *16812 open() "/home/infalms/webapps/zecaffe/zecaffe/static/ckeditor/ckeditor/skins/moono/skin.js" failed (2: No such file or directory), client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /static/ckeditor/ckeditor/skins/moono/skin.js?t=B8DJ5M3 HTTP/1.1", host: "zecaffe.infalms.com.br", referrer: "http://zecaffe.infalms.com.br/admin/core/noticia/add/"
2013/05/01 13:03:35 [error] 19146#0: *16819 upstream prematurely closed connection while reading response header from upstream, client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /favicon.ico/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/01 13:04:23 [error] 19146#0: *16812 open() "/home/infalms/webapps/zecaffe/zecaffe/static/ckeditor/ckeditor/skins/moono/skin.js" failed (2: No such file or directory), client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /static/ckeditor/ckeditor/skins/moono/skin.js?t=B8DJ5M3 HTTP/1.1", host: "zecaffe.infalms.com.br", referrer: "http://zecaffe.infalms.com.br/admin/core/noticia/add/"
2013/05/01 13:04:24 [error] 19146#0: *16812 open() "/home/infalms/webapps/zecaffe/zecaffe/static/ckeditor/ckeditor/skins/moono/skin.js" failed (2: No such file or directory), client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /static/ckeditor/ckeditor/skins/moono/skin.js?t=B8DJ5M3 HTTP/1.1", host: "zecaffe.infalms.com.br", referrer: "http://zecaffe.infalms.com.br/admin/core/noticia/add/"
2013/05/01 13:04:24 [error] 19146#0: *16812 upstream prematurely closed connection while reading response header from upstream, client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /favicon.ico/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/01 13:04:26 [error] 19146#0: *16812 upstream prematurely closed connection while reading response header from upstream, client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /favicon.ico/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/01 13:13:11 [error] 19144#0: *16928 upstream prematurely closed connection while reading response header from upstream, client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /favicon.ico/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/01 13:16:20 [error] 19147#0: *16965 upstream prematurely closed connection while reading response header from upstream, client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /favicon.ico/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/01 13:19:16 [error] 19147#0: *16976 upstream prematurely closed connection while reading response header from upstream, client: 187.7.60.53, server: zecaffe.infalms.com.br, request: "GET /favicon.ico/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:16:18 [crit] 19146#0: *32344 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /admin/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:16:19 [crit] 19146#0: *32344 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:16:49 [crit] 30969#0: *3 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /admin/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:16:49 [crit] 30969#0: *3 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:17:07 [crit] 30969#0: *3 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /admin/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:17:07 [crit] 30969#0: *3 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:20:11 [crit] 30969#0: *21 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /admin/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:20:11 [crit] 30969#0: *21 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:20:12 [crit] 30969#0: *21 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /admin/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:20:13 [crit] 30969#0: *21 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:20:51 [crit] 30969#0: *21 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /admin/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:20:52 [crit] 30969#0: *21 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:20:56 [crit] 30969#0: *21 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:20:56 [crit] 30969#0: *21 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:28:21 [crit] 30969#0: *73 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:28:21 [crit] 30969#0: *73 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:38:29 [crit] 30972#0: *107 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:38:29 [crit] 30972#0: *107 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:54:28 [crit] 32378#0: *57 connect() to unix:///tmp/zecaffe.sock failed (13: Permission denied) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 15:54:29 [crit] 32378#0: *57 connect() to unix:///tmp/zecaffe.sock failed (13: Permission denied) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 16:13:16 [crit] 32378#0: *175 connect() to unix:///tmp/zecaffe.sock failed (13: Permission denied) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 16:13:17 [crit] 32378#0: *175 connect() to unix:///tmp/zecaffe.sock failed (13: Permission denied) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 16:16:23 [crit] 32378#0: *207 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 16:16:23 [crit] 32378#0: *207 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 16:16:35 [crit] 32378#0: *207 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"
2013/05/03 16:16:36 [crit] 32378#0: *207 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br"

Now, I'm geting a 502 (Bad Gateway) error 🙁

Best Answer

You need check permissions for creation .sock-file in /tmp/ dir. I recommend make different directory for .pid and .sock files:

cd /var/run/
makedir django
chown www-data:www-data django

Then change your settings to:

socket=/var/run/zecaffe.sock

Or use gunicorn (recommended):

workon zecaffe
pip install gunicorn

Make file gucicorn.conf.py for run application in /var/www/zecaffe/conf directory:

#! coding: utf-8
import os
import multiprocessing

os.environ['DJANGO_SETTINGS_MODULE'] = 'zecaffe.settings'
short_name = "zecaffe"

bind      = "unix:/var/run/django/%s.sock" % short_name
proc_name = "/var/run/django/%s" % short_name
workers = multiprocessing.cpu_count() * 2 + 1

user      = "www-data"
group     = "www-data"
loglevel  = "warn"
timeout   = 600
keepalive = 5

Install supervisor and add this to /etc/supervisor/conf.d/zecaffe.conf:

[program:zecaffe]
directory = /var/www/zecaffe
user="www-data"
group="www-data"
environment=DJANGO_SETTINGS_MODULE="zecaffe.settings",PYTHONIOENCODING="UTF-8",LANG="en_US.UTF-8",LC_ALL="en_US.UTF-8",LC_LANG="en_US.UTF-8"
command=/var/www/.virtualenvs/zencafe/bin/gunicorn_django -c /var/www/zecaffe/conf/gunicorn.conf.py
stderr_logfile = /var/www/zecaffe/log/supervisor_error.log

Don't forget change mode for gunicorn.conf.py:

chmod u+x /var/www/zecaffe/conf/gunicorn.conf.py

Run supervisorctl update and enjoy!