Nginx+Uwsgi部署Django項目

下載uwsgipython

下載flup (貌似不裝也能夠)linux

下載djangonginx

2. 安裝web

flup和django   都是用 python setup.py installdjango

uwsgi安裝app

1. cd  uwsgi-0.9.6.8
2. python uwsgiconfig.py --build
3. cd nginx
4. cp uwsgi_params /usr/local/nginx/conf/

3. 創建項目目錄socket

1. cd /root
2. django-admin.py startproject  my_django

在my_django目錄下 vi uwsgi.xmlpost

01. <uwsgi>
02. <socket>0.0.0.0:8000</socket>
03. <listen>20</listen>
04. <master>true</master>
05. <pidfile>/usr/local/nginx/uwsgi.pid</pidfile>
06. <processes>2</processes>
07. <module>django_wsgi</module>  #這個文件下面要創建
08. <pythonpath>/root/my_django</pythonpath>   #剛纔創建項目的路徑
09. <profiler>true</profiler>
10. <memory-report>true</memory-report>
11. <enable-threads>true</enable-threads>
12. <logdate>true</logdate>
13. <limit-as>6048</limit-as>
14. </uwsgi>

一樣的 vi django_wsgi.pyui

1. import os
2. import django.core.handlers.wsgi
3. os.environ['DJANGO_SETTINGS_MODULE'] = 'my_django.settings'    #這裏的my_django.settings 表示 "項目名.settings"
4. application = django.core.handlers.wsgi.WSGIHandler()

4. 添加nginx配置spa

01. server {
02. listen  80;
03. server_name 192.168.0.100;
04.  
05. location / {
06. root /root/my_django;
07. uwsgi_pass   127.0.0.1:8000;
08. include     uwsgi_params;
09. access_log  off;  }
10.  
11. }

 

5. 啓動服務

1. #/usr/bin/uwsgi -x /root/my_django/uwsgi.xml
2. #/usr/local/nginx/sbin/nginx

 

//=======================================

附:

若是nginx出現沒法找到uwsgi_pass的話, 升級nginx到0.8.54便可;

若是找不到uwsgi命令則須要複製uwsgi安裝目錄下, 執行上面命令後生成的uwsgi文件到/usr/bin目錄

nginx python spawn-fcgi Flup webpy

 

環境依賴的軟件包

Nginx 0.8.* or 0.7.* (須要包含fastcgi和rewrite模塊)。 
Webpy 0.34 
Spawn-fcgi 1.6.2 
Flup 
安裝webpy 
$ wget http://webpy.org/static/web.py-0.34.tar.gz 
$ tar xvzf web.py-0.34.tar.gz 
$ cd web.py-0.34 
$ sudo python setup.py install

安裝 Flup 
http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz 
$ wget http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz 
$ tar xvzf flup-1.0.2.tar.gz 
$ cd flup-1.0.2.tar.gz 
$ sudo python setup.py install

安裝 Spawn-fcgi 
wget http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz 
tar zxvf spawn-fcgi-1.6.3.tar.gz 
cd spawn-fcgi-1.6.3.tar.gz 
./configure –prefix=/usr設置到/usr 
make && make install # install 
安裝Nginx 
源碼包能夠在官方主頁上下載。Ubuntu 7.10能夠直接經過apt安裝,也能夠從這裏下載最新的deb包: 
sudo apt-get install nginx 
若是要本身編譯的話,須要確保本身已經有編譯器和PCRE的庫(用於Nginx的rewrite模塊,若是不須要這個模塊能夠在configure時使用./configure –without-rewrite)。

編譯方法以下: 
wget http://sysoev.ru/nginx/nginx-0.5.34.tar.gz 
tar zxvf nginx-0.5.34.tar.gz 
cd nginx-0.5.34 
./configure #默認配置安裝路徑爲/usr/local/nginx 能夠追加–prefix=/usr設置到/usr 
make && make install # install要求有root權限

Nginx 配置文件

location / { 
    include fastcgi_params; 
    fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;  # [1] 
    fastcgi_param PATH_INFO $fastcgi_script_name;        # [2] 
    fastcgi_pass 127.0.0.1:9002; 

對於靜態文件能夠添加以下配置:

location /static/ { 
    if (-f $request_filename) { 
    rewrite ^/static/(.*)$  /static/$1 break; 
    } 
}

重啓nginx配置: 
/path/to/nginx/sbin/nginx -s reload

中止nginx: 
/path/to/nginx/sbin/nginx -s stop 
Spawn-fcgi

能夠經過一下命令啓動一個Spawn-fcgi進程:

sudo /usr/local/spawn-fcgi/bin/spawn-fcgi -d /usr/local/nginx/cgi/ -f /usr/local/nginx/cgi/test.py -a 127.0.0.1 -p 9002 -P /tmp/webpy.pid

將進程PID保存下來方便關閉進程:

kill `cat /tmp/webpy.pid`

參數說明:

-f 指定調用 FastCGI 的進程的執行程序位置,根據系統上所裝的 PHP 的狀況具體設置 
-a 綁定到地址 addr 
-p 綁定到端口 port 
-F 指定產生的 FastCGI 的進程數  (不少人覺得是-C,其實那是PHP專用的,這裏要用-F) 
-P 指定產生的進程的 PID 文件路徑 
-u 和 -g FastCGI 使用什麼身份運行

 

若是運行Spawn-fcgi以後,ps -ef 不能發現進程,sudo netstat -antup不能發現端口說明Spawn-fcgi沒有正常啓動,能夠在啓動參數中加 -n 以後再啓動會有詳細信息.問題也就找到了.

藍天博客

今天多一份拼搏明天多幾份歡笑

相關文章
相關標籤/搜索