新建一個(gè)XML文件:

djangochina_socket.xml,將它放在/data/www/org_management目錄下:

Nginx采用8077端口與uWSGI通訊,請(qǐng)確保此端口沒有被其它程序采用

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開發(fā),動(dòng)畫培訓(xùn)

<uwsgi>
    <socket>:8077</socket>  
    <chdir>/data/www/org_management</chdir>
    <module>org_management.wsgi</module>
    <processes>4</processes> <!-- 進(jìn)程數(shù) --> 
    <daemonize>uwsgi.log</daemonize>
</uwsgi>

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開發(fā),動(dòng)畫培訓(xùn)

 

我們假設(shè)你將會(huì)把Nginx程序日志放到你的目錄/data/www/org_management下,請(qǐng)確保該目錄存在。

我們假設(shè)你的Django的static目錄是/data/www/org_management/static/ , media目錄是/data/www/org_management/media/,請(qǐng)確保這些目錄存在。

我們假設(shè)你的域名是 www.you.com (在調(diào)試時(shí)你可以設(shè)置成你的機(jī)器IP或者直接注釋掉)

我們假設(shè)你的域名端口是 80(在調(diào)試時(shí)你可以設(shè)置一些特殊端口如 8070)

基于上面的假設(shè),我們?yōu)?span id="rewtv01" class="s1">/etc/nginx/conf.d 添加以下配置 org_nginx.conf  確保org_nginx.conf 在nginx的安裝目錄,否則會(huì)找不到

 

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開發(fā),動(dòng)畫培訓(xùn)

server {
        listen   80;   #服務(wù)器開放端口號(hào)
        server_name yl.longleding.com;   #域名如果沒有可以注釋
        access_log /data/www/org_management/logs/access.log;      
       #logs文夾必須有
        error_log /data/www/org_management/logs/error.log;        #logs文件夾必須有

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }        #靜態(tài)文件夾
        location /static/xadmin/ {
            alias  /data/www/org_management/extra_apps/xadmin/static/xadmin/;
        } 
       #靜態(tài)文件夾
        location /static/ {
            alias  /data/www/org_management/static/;
        }        #上傳文件目錄
        location /media/ {
            alias  /data/www/org_management/media/;
        }        #建議放最后否則會(huì)出現(xiàn)找不到靜態(tài)文件情況
        location / {
         include        uwsgi_params;
         uwsgi_pass     127.0.0.1:8077;  #和uwsgi通訊保持一致        }
    }

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開發(fā),動(dòng)畫培訓(xùn)

 

在上面的設(shè)置后,可以讓Nginx來處理靜態(tài)文件(/static/ 和 /media/ )。非靜態(tài)文件請(qǐng)求Nginx會(huì)發(fā)給 socket 8077,然后讓uWSGI來進(jìn)行處理。

 

Nginx+uWSGI+Django的實(shí)現(xiàn)方式

在完成上面配置后,需要按以下步驟來做:

  1. 重啟Nginx服務(wù)器,以使Nginx的配置生效。

  2.  

    nginx -s  reload

     

    重啟后檢查Nginx日志是否有異常。

  3. 啟動(dòng)uWSGI服務(wù)器

    /data/www/org_management
    
    uwsgi -x djangochina_socket.xml

     

    檢查日志 uwsgi.log 是否有異常發(fā)現(xiàn)。

  4. 訪問服務(wù)

    基于上面的假設(shè)你的域名是www.you.com

    因此,我們?cè)L問 www.you.com,如果發(fā)現(xiàn)程序與 單獨(dú)使用Django啟動(dòng)的程序一模一樣時(shí),就說明成功啦!

  5. 關(guān)閉服務(wù)的方法  killall uwsgi  關(guān)閉所有uwsgi  在開啟進(jìn)程中可以設(shè)定一個(gè)uwsgi為主進(jìn)程,殺死主進(jìn)程即可        將uWSGi進(jìn)程殺死即可。

一些建議

  1. uWSG配置文件的進(jìn)程數(shù),可以根據(jù)實(shí)際情況分配。不要開得太大,否則機(jī)器可能會(huì)內(nèi)存耗用太高。一般來說,對(duì)于一個(gè)小社區(qū)來說,4個(gè)進(jìn)程已經(jīng)足夠了。

  2. 一般情況下,可以編寫一下 stop.sh 腳本 來關(guān)閉uWSGI。

http://www.cnblogs.com/zhaoyingjie/p/7103886.html