2012年6月7日木曜日

静的ファイルへのリクエストはnginxが処理し,他をDjangoに処理させる


Djangoのドキュメントに「通常、 Django はメディアファイルの提供を使っている Web サーバの仕事として残しておきます。」とあるので,そのWebサーバの仕事をnginxに任せることにしました.

環境はCentOS 6.2 64bitです.


$ sudo yum install nginx

ぼくの環境ではepelから1.0.15-2.el6が入りました.

$ sudo emacs /etc/nginx/conf.d/virtual.conf

server {
    listen       80;
    server_name  192.168.0.3;

    location ~ .*\.(jpg|jpeg|gif|png|css|js|ico) {
        root    /var/www/static;
        break;
    }

    location / {
        proxy_pass  http://127.0.0.1:8000;
        break;
    }
}
これを追記します.
これで192.168.0.3の80番ポートへのアクセスで,jpg, jpeg, git, png, css, js, icoを要求した時に,/var/www/staticからnginxがファイルを返します.
それ以外の要求は127.0.0.1:8000で待機しているDjangoに回します.

$ sudo /etc/init.d/nginx start
あとはnginxを起動したら完了です.

参考
http://havelog.ayumusato.com/develop/server/e198-nginx-with-apache.html

0 件のコメント:

コメントを投稿