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