您的位置:首页 > 运维架构 > Nginx

nginx+fastcgi+django的一次尝试

2011-02-22 09:54 323 查看

nginx+fastcgi+django的一次尝试

早有耳闻nginx,现在试用一下。我的
机器ip为10.0.40.83,就在一台机器上测试,多台机器也是一样。

1. 安装nginx

在公司的机器是win,所以就在win下安装nginx。若果你在linux下安装过如lighttpd,过程是一样的,并没有太多的差异。OS因素是次要,实际生产环境要使用linux。

http://nginx.net/
,下载nginx-0.6.32-win32-setup.exe。后面......

2. 安装django1.0以及flup1.0

下载这2个软件,找到setup.py脚本,python
setup.py install或python setup.py即可安装。当然要先要安装python,并配置好python环境变量。

3.创建工程

在D:/software/django/sites/下创建一个django工程mysite,如:pwd/django-admin.py startproject mysite

在mysite里添加一个py文件first.py

from django.http import HttpResponse

def index(request):

return HttpResponse('first django page .....')

修改url.py,在patterns里添加:

(r'^mysite/$','mysite.first.index')

4. 配置nginx

在nginx安装目录下,一般在C:/nginx/conf下,修改nginx.conf文件,关键几点如下:

worker_processes 2;#开2个nginx进程,在任务管理器可以看到这2个子进程和一个nginx主进程,一般按CPU数配置,我的习惯是2*CPU(核)数

events {

worker_connections 64;#每个进程链接队列长度,可按实际设置

}

http {

... #省略其它配置

#和后端的2个fastcgi 服务通讯,注意fastcgi ,后面用到,weight是权重

upstream fastcgi {

server 10.0.40.83:8051 weight=1;

server 10.0.40.83:8052 weight=1;

}

server {

listen 80;

server_name localhost;

...#省略其它配置

location / {

# 指定 fastcgi 的主机和端口,这里的fastcgi指的是上面的upstream

fastcgi_pass fastcgi;

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;

}

...#省略其它配置

}

...#省略其它内容

}

4. 运行

运行nginx(administrator用户),在开始菜单里。

运行2个fastcgi服务,开2个cmd窗口,在mysite目录下:

python manage.py runfcgi host=10.0.40.83 port=8051 method=threaded daemonize=false

python manage.py runfcgi host=10.0.40.83 port=8052 method=threaded daemonize=false

http://10.0.40.83/
http://127.0.0.1/
或http://localhost/可以看到输出
结果。

5. 破坏尝试

开2个fastcgi的cmd窗口,终止其中一个访问看看,其实没有任何影响。

再把运行的停止,停止的启动看看,还是能访问。

若2个都终止,发现不能访问。

在测试过程中注意C:/nginx/logs下的log的输出信息。

nginx没有多少文档,只能看一些只言片语。有几个比较不错的参考文章。

张宴的一个ppt: 使用Nginx轻松实现开源负载均衡,其blog地址为:http://blog.s135.com/index.php
http://www.ibm.com/developerworks/cn/web /wa-lo-nginx/

http://nginx.net/

http://sysoev.ru/en/

其它的在网上google吧,总会有点的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: