Quantcast
Channel: panjj 最新博客
Viewing all articles
Browse latest Browse all 59

Windows7+Nginx+Flup(FastCGI)+Django

$
0
0
上回记录了Windows7配置了Nginx环境,这回让Django跑在Nginx上。之前是需要点理论知识沉淀的;建议之前看看:http://www.fresh3g.org/blog/post/346/ 感觉写的很详细。下面是根据那些理论知识去尝试配置环境:

首先我们要做的是:安装及配置Django,Nginx和Flup;Django和Nginx环境配置不再累赘。请参考:http://baoyalv.com/blog/baoyalv/Django/2010/02/03/4http://baoyalv.com/blog/panjj/other/2010/11/07/136

安装Flup,到官网上http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz下载,解压后发现是python写的类库,把它安装到python里,安装方法和其他的python类库一样做法,在doc命令行里执行:
python setup.py install  #注意要求python写到path里,才能有python命令

过程中可能需要联机,因为安装的过程中需要下载一些相关的东西。

接下来,
1.配置Nginx,配置文件见以下代码:
worker_processes 1;

events {
worker_connections 64;
}

http {
include mime.types;
default_type application/octet-stream;


sendfile on;

keepalive_timeout 65;

server {
listen 80;
server_name 127.0.0.1;

root /cygdrive/G/myproject/;
index index.html index.htm;

charset utf-8;

# 静态资源
location ~ ^/static/
{
expires 30d;
break;
}

location / {
# 指定 fastcgi 的主机和端口
fastcgi_pass 127.0.0.1:9001;
fastcgi_param REMOTE_ADDR $remote_addr;
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_PROTOCOL $server_protocol;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

}

建议备份好原来的配置文件,然后再覆盖nginx文件。
该配置文件只是实验用,连log都没有写,想了解更详细的文档,参考官方文档:http://wiki.nginx.org/DjangoFastCGI
现在列出关键的几个地方:
server {
listen 80; #首先让Nginx跑在Windows的80端口上:

server_name 127.0.0.1;#写上project对应的域名 我们在本地上测试,所以是127.0.0.1

root /cygdrive/G/myproject/;#项目的根目录,在windows下,如果是G盘,写上/cygdrive/G/,依次类推。切忌不要写成G:\myproject\

location ~ ^/static/ #静态文件指向,我们直接指向项目根目录的static文件夹,根据实际情况正确指向

fastcgi_pass 127.0.0.1:9001;#我们通过fastgci(flup)在9001端口上跑django项目
fastcgi_param REMOTE_ADDR $remote_addr;#加上这行,是因为django request用到获取真实ip的的属性,

关键的地方都一一说明了,检查配置都写对后,重启Nginx,(记得任务栏里关掉全部nginx进程再重启)

2 通过fastgci run django
在doc里进入django项目的根目录,启动:
manage.py runfcgi method=threaded host=127.0.0.1 port=9001

也可以编写指令,方面启动:
在项目的根目录下新建 一个vbs文件run:
set ws=wscript.createobject("wscript.shell")
ws.run "manage.py runfcgi method=threaded host=127.0.0.1 port=9001",0

以后每次启动,双击run文件即可。

现在在浏览器上,输入:127.0.0.1 
是不是看到页面跑起来了??


Viewing all articles
Browse latest Browse all 59

Trending Articles