django+nginx+flup

来源:互联网 发布:砍柴网源码 帝国 编辑:程序博客网 时间:2024/06/05 22:40

由于之前写的代码总是用的是Django自带的WSGIServer/0.1进行测试的。
但是这个webserver服务器毕竟只是用来进行测试的,它的某些性能方面都
不会特别的完善。并发性也不是很好

所以一般我们要把django项目挂载到网络上去的话,用那个肯定是不行的。
所以我们选用了nginx,当然nginx作为webserver的性能是没话说的了,
但是我们的Django没有直接和别的webserver对话的模块,所以这样的flup
也就应运而生了,flup就是nginx与Django之间的桥梁。

1.nginx:("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,作用和apache的类似。
它可以处理一些静态文件的请求,而对于动态的文件的请求,它可以通过fastcgi方式,来分发请求给不同的动态语言处理。

2.flup:本身是一个使用python写的web服务器软件,它可以接受nginx发来的请求,
执行相应的python代码,将结果返回给nginx。

3.django:基于python的一个web框架,它可以我们做一些基础性的东西,
比如cookie,session管理,模板机制,权限管理等等
 

要使用他们当然是先要安装他们咯

安装python


安装Django


安装flup


安装nginx


接下来就是进行配置咯


在nginx配置文件中加上我们的python程序server:
如:
在本地的nginx的配置文件wxy.conf


server {
    listen 80;
    server_name  wxy.v5data.com;
    access_log    /home/nlog/v5data.log;
    error_log     /var/log/nginx/v5data.err.log;

    location / {
        fastcgi_pass unix:/tmp/v5data.sock;
        include fcgi.conf;
    }

    location /w3c/ {
        alias /home/htdocs/w3c/;
    }

    location = /favicon.ico {
        root /home/htdocs/w3c/favicon/v5data.com/;
    }
}

fcgi.conf:


    fastcgi_pass_header Authorization;
    fastcgi_intercept_errors off;

    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 SERVER_PORT           $server_port;
    fastcgi_param SERVER_PROTOCOL       $server_protocol;
    fastcgi_param SERVER_NAME           $server_name;

    fastcgi_param REQUEST_URI           $request_uri;
    fastcgi_param DOCUMENT_URI          $document_uri;
    fastcgi_param DOCUMENT_ROOT         $document_root;
    fastcgi_param SERVER_ADDR           $server_addr;
    fastcgi_param REMOTE_USER           $remote_user;
    fastcgi_param REMOTE_ADDR           $remote_addr;
    fastcgi_param REMOTE_PORT           $remote_port;
    fastcgi_param SERVER_SOFTWARE       "nginx";
    fastcgi_param GATEWAY_INTERFACE     "CGI/1.1";


最后再把wxy.conf文件添加到nginx的nginx.conf里面即可
include wxy.conf


上面的大部分是这样的了,当然Django项目如何建立,python代码如何写就不用在这里说了吧,呵呵。。。