You searched for articles tagged with Django.

nginx -> Django fcgi SSL! Permalink

nginx, Django Added less than a year ago and last edited less than a year ago

I have setup nginx as my webserver. It acts as a proxy in front of the django site running it's own fcgi server:

# from within your django project, run the fcgi server as such (must have flup installed)
/usr/bin/env python manage.py runfcgi host=127.0.0.1 port=8080 --settings=settings

I use SSL middleware in my django site to automatically redirect to https:// for certain URLs - mainly /admin/

My nginx.conf has to have two server configs, one for HTTP and one for HTTPS:

server {
    listen 80;
    server_name notareal.com.net.org;
    location /media {
        root /home/www/projectroot;
    }
    location / {
        fastcgi_pass 127.0.0.1:8080;
        fastcgi_param SERVER_NAME $server_name;
        fastcgi_param SERVER_PORT $server_port;
        fastcgi_param SERVER_PROTOCOL $server_protocol;
        fastcgi_param PATH_INFO $fastcgi_script_name;
        fastcgi_param REQUEST_METHOD $request_method;
        fastcgi_param QUERY_STRING $query_string;
        fastcgi_param CONTENT_TYPE $content_type;
        fastcgi_param CONTENT_LENGTH $content_length;
        fastcgi_pass_header Authorization;
        fastcgi_intercept_errors off;
    }
}
server {
    listen 443;
    ssl on;
    ssl_certificate /usr/local/nginx/ssl/server.crt;
    ssl_certificate_key /usr/local/nginx/ssl/server.key;
    keepalive_timeout 70;
    server_name notareal.com.net.org;
    location /media {
        root /home/www/projectroot;
    }
    location / {
        fastcgi_pass 127.0.0.1:8080;
        fastcgi_param SERVER_NAME $server_name;
        fastcgi_param SERVER_PORT $server_port;
        fastcgi_param SERVER_PROTOCOL $server_protocol;
        fastcgi_param PATH_INFO $fastcgi_script_name;
        fastcgi_param REQUEST_METHOD $request_method;
        fastcgi_param QUERY_STRING $query_string;
        fastcgi_param CONTENT_TYPE $content_type;
        fastcgi_param CONTENT_LENGTH $content_length;
        fastcgi_param HTTP_X_HTTPS on;
        fastcgi_pass_header Authorization;
        fastcgi_intercept_errors off;
    }
}

The magic line is fastcgi_param HTTP_X_HTTPS on; now we can modify our SSL redirection middleware to check for HTTP_X_HTTPS instead of HTTP_X_FORWARDED_SSL (or you could use HTTP_X_FORWARDED_SSL if you wanted, just change the nginx.conf)

And it all works well!




Blog Update Permalink

Django, ThisBlog Added more than a year ago

Notice the new Recent Entries section on the right.




Tag Clouds and Caching Permalink

Django, Git Added more than a year ago

On the right you will notice a new tag cloud. I wrote a tag_cloud templatetag in Django for it. Generating a tag cloud involves a little calculation, so I cached it using Django 1.0's Template Fragment Caching. It lets me wrap anything in a template with a cache templatetag, specifying seconds to cache for.

I have two separate cache settings, one for dev and one for prod environments (in their corresponding settings files.) They are using Django's filesystem caching - so the cache is just stored on disk. I am storing the cache in a subdirectory of the codebase, but I don't want the cache being carried around in the Git repo, so I added:

/cache/*

... to my .gitignore file in the codebase root. Nice!




Blog Todo Permalink

Django, Python Added more than a year ago and last edited more than a year ago



(Nothing Older) ... (Nothing Newer)

Colophon

Django Python 960.gs Git Vim NetBSD Nginx

The Author

The author is a software engineer living in Australia. He sux at guitar, loves camping, doesn't like cake, does like coffee and is a lazy home brewer.

Meta

Help
Latest entries

*BSD Agile Apache Apple Athletics Beer Best-Practice Censorship Comedy Cool Crosswords Deployment Django English Exim Firefox Git Hardcore Health Interface irssi Javascript Jira Languages Linux Makefile Markdown Mathematics Mobile Broadband MySQL NetBSD nginx Nokia OSX Perl Photo Privacy Python Rant Requirements rsync Ruby Shell Slackware SQL SQLite SSH Standards Subversion Testing ThisBlog Vim VMWare (Fusion) VPN WDTEM X Yum zsh

Recent Entries

Perldoc Output
Yum
Possum
Git's Index
Jira Project Keys
The Coffee Shop
Git GUI
It is more important...
Questioning Unix (and Other) File Times
The Frog King Photo
Rain Cloud Photo
rsync
Timezone
utf8 in your Perl
Theatre Ceiling Photo
Some problems are so complex...
Colours in your PAGER
zsh vared
zsh magic-equals and double-star
Funny Tweets

Links

ChoppingBoard, Project365, RageQuit

♥ Actors/Artists/Characters