由于之前写的代码总是用的是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代码如何写就不用在这里说了吧,呵呵。。。