Finalmente hice andar nginx con uwsgi. Al principio lo hice funcionar con supervisor + uwsgi corriendo en un socket para cada sitio, pero luego de intentar (ya que no encontré documentación de cómo hacerlo) pude poner uwsgi en modo vhost para solo tener una instancia corriendo para todos los sitios.
Desde supervisor, uwsgi esta funcionando con los siguientes parametros:
[program:uwsgi_vhost] command=/usr/local/bin/uwsgi --socket 127.0.0.1:1088 --processes 3 --master --uid www-data --no-site --vhost --reload-os-env user=www-data autostart=true autorestart=true stdout_logfile=/var/log/uwsgi_main.log redirect_stderr=true stopsignal=QUIT
En nginx , un virtualhost de ejemplo (netpastiche.com.ar)
server { listen xx.xx.xxx.xx:80; server_name netpastiche.com.ar; # uwsgi for django location / { include uwsgi_params; uwsgi_param UWSGI_CHDIR /path/to/netpastiche.com.ar/public_html; uwsgi_param UWSGI_MODULE netpastiche_wsgi; uwsgi_pass 127.0.0.1:1088; } # static content location /static { root /path/to/netpastiche.com.ar/public_html; expires 24h; } }
Lo mas dificil fue hacer funcionar el sitio, ya que no estaba incluyendo en el pythonpath los paths donde estaba django instalado (netpastiche_uwsgi.py)
import os, sys sys.path.append(os.path.dirname(__file__)) sys.path.append('/usr/lib/pymodules/python2.6') sys.path.append('/usr/local/lib/python2.6/dist-packages/') os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()



