django + nginx + flup

来源:互联网 发布:随身淘宝乡下小地主 编辑:程序博客网 时间:2024/06/11 15:04
1、安装django,网上有很多例子svn co http://code.djangoproject.com/svn/django/trunk按照readme说明安装django安装好后,写一个例子,然后启动服务:python manage.py runserver 0.0.0.0:8080确认服务能访问例子,要访问的view.pyfrom django.http import HttpResponseimport datetimeimport pdbfrom django.template import Template, Contextfrom alibrowser.util import logimport syslogger = log.loginit()def current_datetime(request):        now = datetime.datetime.now()        html = "It is now %s." % now        logger.info("test1 called")        return HttpResponse(html)def person(request):        person = {'name': 'Sally', 'age': '43'}        t = Template('{{ person.name }} is {{ person.age }} years old.')        c = Context({'person': person})        html = t.render(c)        logger.error("fucked")        return HttpResponse(html)配置urls.pyfrom django.conf.urls.defaults import patterns, include, urlfrom view import current_datetimefrom view import personfrom view import getcookieurlpatterns = patterns('',        (r'^now/, current_datetime), (r'^person/,person), (r'^getcookie/,getcookie),)2、安装nginx(需要先安装pcre)http://www.nginx.org/download/nginx-1.0.9.tar.gz安装后,会在/usr/local/nginx/下生成几个目录测试nginx是否workcd /usr/local/nginx/sbin/nginxps -ef | grep nginx 可以查看到nginx服务已起来,默认配置是server是80端口然后,访问一下,可以看到Welcome to nginx!说明nginx启动成功3、这个时候,通过python manage.py runfcgi method=threaded host=0.0.0.0 port=8051 会提示flup 需要安装安装flup,http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz4、这个时候,要通过nginx来访问django,需要修改nginx的配置cd /usr/local/nginx/conf/修改nginx.conf文件如下:将location 默认的根路径映射换掉,随便写一个(改成访问/html时默认访问nginx的默认index.html页面)location /html {            root   html;            index  index.html index.htm;        }然后增加一个映射location / {            # 指定 fastcgi 的主机和端口            fastcgi_pass 127.0.0.1:8051;            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;        }然后,启动在django的项目下,执行python manage.py runfcgi method=threaded host=0.0.0.0 port=8051然后在运行 sbin/nginx 通过浏览器访问http://10.249.194.51/person/就显示django程序显示的 Sally is 43 years old.  DONE