Python-搭建Nginx+Django環境

1.安裝 flup 模塊html

  下載:http://projects.unbit.it/downloads/uwsgi-latest.tar.gzpython

  安裝:python setup.py installlinux

2.安裝 djangonginx

  去官網下載:https://www.djangoproject.com/download/web

  安裝:python setup.py installdjango

3.創建服務器與 FastCGI server 的連接vim

  web 服務器可經過兩種辦法和 FastCGI server 鏈接:
  1). Unix domain socket(或 win32 的「命名管道")
  2). TCP socket
  一般 TCP socket 更簡單, 由於權限問題比較好配置

  如何啓動 FactCGI 服務器:
    到項目目錄中, 執行:
    python manage.py runfcgi [options]
    若是要看幫助:
    python manage.py runfcgi help

    在選項中, 須要指定一個 socket 或 (host 和 port 的組合), 這樣的話, 當你啓動 web server 時, 就能夠經過這些信息來鏈接到 FactCGI 服務器服務器

    如下爲兩種啓動方法的示例, 能夠選擇其中一種:      1).在 TCP 端口中運行一個線程內服務器:dom

      python manage.py runfcgi method=threaded host=127.0.0.1 port=8051 daemonize=true minspare=10 maxspare=30socket

      2).在 Unix domain socket 上運行一個 preforked 服務器(Windows不支持):

      python manage.py runfcgi method=prefork socket=/tmp/django.sock daemonize=true maxrequests=1 minspare=10 maxspare=30 pidfile=/var/run/django.pid

      # maxspare爲初始化的進程/線程數, 也是最少個數 
      # minspare爲最少空閒進程/線程數, 注意空閒二字 
      # maxchildren 進程/線程上限, 以每一個py進程20~30M算, 本身算下服務器內存能建立最大進程數吧
      # maxrequests 處理多少個請求後, 銷燬進/線程, 防內存泄漏, 默認不銷燬 
      # method = prefork|threaded 進程或線程跑你的程序, 默認進程。

      PS: 若是不調試則 daemonize=false

      PS: 第二種方法若是想中止後臺的 FastCGI 進程, 執行 kill -9 `cat /var/run/django.pid`

4.修改nginx的配置文件:

  server {
        listen       8000;
    server_name  localhost;
    access_log  /usr/local/nginx/log.log main;
    error_log /usr/local/nginx/error.log  debug;
    location / {

     #若是上面是採用TCP的形式則
            #fastcgi_pass 127.0.0.1:8051;
     #若是上面是採用的unix sock的形式則
            fastcgi_pass unix:/tmp/django.sock;
            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 REMOTE_ADDR $remote_addr;
            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;
        }
    }

5.啓動nginx服務器

  1.檢測nginx服務器配置

    /usr/local/nginx/sbin/nginx -t

  2.平滑重啓

    /usr/local/nginx/sbin/nginx -s reload

6.訪問localhost:8000便可

7.若是出現502錯誤, 檢查錯誤日誌, 及/tmp/django.sock的訪問權限

參考:

  Django on Nginx https://wiki.freebsdchina.org/doc/n/nginx_django

  django-admin.py和manage.py http://www.tuicool.com/articles/226ZZv

  Python+Django+Nginx服務器環境的配置 https://wiki.freebsdchina.org/doc/n/nginx_django

  如何用 FastCGI 運行 Django http://www.cnblogs.com/RChen/archive/2007/03/23/django_fcgi.html

  linux下nginxpythonfastcgi部署總結django版 http://www.vimer.cn/2011/07/linux%E4%B8%8Bnginxpythonfastcgi%E9%83%A8%E7%BD%B2%E6%80%BB%E7%BB%93django%E7%89%88.html

  Django 站點部署和管理經常使用命令 http://www.oschina.net/question/234345_54799

相關文章
相關標籤/搜索