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;
}
Categories: nginx