Transifex + Django + nginx on Ubuntu
You can probably also use this for just Django + nginx on Ubuntu too, it should work the same for any Django-based package, just change the Transifex-specific stuff (like /site_media and such.)
Dependencies:
-
python-django package from Ubuntu (currently Jaunty's 1.0.2-1ubuntu0.1)
-
Transifex installed to /home/transifex/web/transifex, from source
-
Transifex setup to answer over fastcgi on port 8080
-
Tested on nginx 0.7.x and 0.8.x compiled from source
/etc/nginx/nginx.conf:
server {
listen 80;
server_name foo.com;
include /etc/nginx/confs/defaults.conf;
location / {
fastcgi_pass 127.0.0.1:8080;
include /etc/nginx/confs/django.conf;
}
location /site_media {
root /home/transifex/web/transifex;
include /etc/nginx/confs/expires.conf;
}
location /media {
root /usr/share/python-support/python-django/django/contrib;
include /etc/nginx/confs/expires.conf;
}
}
/etc/nginx/confs/defaults.conf:
location ~ /\.ht {
deny all;
}
location ~ \.svn {
deny all;
}
log_not_found off;
server_name_in_redirect off;
/etc/nginx/confs/django.conf:
# http://www.rkblog.rk.edu.pl/w/p/django-nginx/
# http://code.djangoproject.com/wiki/ServerArrangements
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
/etc/nginx/confs/expires.conf:
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
expires max;
access_log off;
}