zoukankan      html  css  js  c++  java
  • Django项目在nginx上面的部署(django+flup+nginx)

    首先说下需要用到的软件
    1、python环境
    因为我用的centos6.2 上面自带了python2.6.6的环境。所以就可以不用安装了。
    2、Django环境
    我们这里用easy_install的方式来安装,因为后面装其他关于python的都可以用到。当然你可以下载源码编译安装,都行。
    首先用yum安装easy_install

    yum -y install python-setuptools

    安装完成后,用easy_install来安装django

    easy_install "django==1.4.5"

    3、flup
    flup: 一个用python写的web server,也就是cgi中所谓的Server/Gateway,它负责接受apache/nginx转发的请求,并调用你写的程序 (application),并将application处理的结果返回到apache/nginx.
    安装flup

    easy_install flup

    虽说django自带一个开发用的服务器。
    manage.py runserver。可以结合nginx部署一个web站点,但是这个开发的服务器必然没有python的web服务器flup专业.

    4、nginx安装
    可以参考我以前的博文来安装nginx,http://www.linuxyan.com/web-server/32.html

    都安装好之后,就可以来配置flup和nginx了。

    首先启动flup,到自己的django目录下。
    一种是用sock来通信的:python manage.py runfcgi socket=/tmp/python.sock maxrequests=1
    一种是用监听端口来通信的:python manage.py runfcgi method=prefork host=127.0.0.1 port=9001
    用sock启动的,可以用
    ll /tmp/python.sock
    来查看sock文件是否成功生成,还有就是注意sock文件权限是否正确。如果访问出现502,就有可能是sock文件的权限问题。

    如果用端口来启动的。可以用
    netstat -tnlp
    来查看9001端口是否处于监听状态。

    启动之后,配置nginx的server段

    server {
            listen       80;
            server_name  www.linuxyan.com;
            root /var/www/html/djangodemo;
            
        access_log  /var/log/nginx/log/python.access.log;
        error_log   /var/log/nginx/log/python.error.log;
     
            #配置django admin需要的文件(如果启用的django的admin功能)
            location ~* ^/media/(css|img|js)/.*$ {
                    root /usr/local/lib/python2.6/site-packages/django/contrib/admin;
                    expires 30d;
                    break;
            }
            location / {
                    fastcgi_pass unix:/tmp/python.sock;
                    #如果上面是采用端口的启动则
                    #fastcgi_pass 127.0.0.1:9001;
                    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";
            }
    }
    之后,就可以通过域名访问django的项目啦。
  • 相关阅读:
    bash 中 () {} [] [[]] (()) 的解释
    正则表达式速查笔记
    Makefile速查笔记
    gflags 编译动态库
    在Win10上运行ESXI-Comstomer
    GNU g++常用编译选项用法
    C++标准转换运算符reinterpret_cast
    BZOJ 3211: 花神游历各国【线段树区间开方问题】
    BZOJ 1597: [Usaco2008 Mar]土地购买【斜率优化+凸包维护】
    BZOJ 1046: [HAOI2007]上升序列【贪心+二分状态+dp+递归】
  • 原文地址:https://www.cnblogs.com/stubborn412/p/3938125.html
Copyright © 2011-2022 走看看