五步教你實現使用Nginx+uWSGI+Django方法部署Django程序


新建一個XML文件:

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

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

<uwsgi>
    <socket>:8077</socket>  
    <chdir>/data/www/org_management</chdir>
    <module>org_management.wsgi</module>
    <processes>4</processes> <!-- 進程數 --> 
    <daemonize>uwsgi.log</daemonize>
</uwsgi>

 

我們假設你將會把Nginx程序日志放到你的目錄/data/www/org_management下,請確保該目錄存在。

我們假設你的Django的static目錄是/data/www/org_management/static/ , media目錄是/data/www/org_management/media/,請確保這些目錄存在。

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

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

基於上面的假設,我們為/etc/nginx/conf.d 添加以下配置 org_nginx.conf  確保org_nginx.conf 在nginx的安裝目錄,否則會找不到

 

server {
        listen   80;   #服務器開放端口號
        server_name yl.youname.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;
        }
        #靜態文件夾
        location /static/xadmin/ {
            alias  /data/www/org_management/extra_apps/xadmin/static/xadmin/;
        }
 
       #靜態文件夾
        location /static/ {
            alias  /data/www/org_management/static/;
        }
        #上傳文件目錄
        location /media/ {
            alias  /data/www/org_management/media/;
        }
        #建議放最后否則會出現找不到靜態文件情況
        location / {
         include        uwsgi_params;
         uwsgi_pass     127.0.0.1:8077;  #和uwsgi通訊保持一致
        }
    }

 

在上面的設置后,可以讓Nginx來處理靜態文件(/static/ 和 /media/ )。非靜態文件請求Nginx會發給 socket 8077,然后讓uWSGI來進行處理。

 

Nginx+uWSGI+Django的實現方式

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

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

  2.  

    nginx -s  reload

     

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

  3. 啟動uWSGI服務器

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

     

    檢查日志 uwsgi.log 是否有異常發現。

  4. 訪問服務

    基於上面的假設你的域名是www.you.com

    因此,我們訪問 www.you.com,如果發現程序與 單獨使用Django啟動的程序一模一樣時,就說明成功啦!

  5. 關閉服務的方法  killall uwsgi  關閉所有uwsgi  在開啟進程中可以設定一個uwsgi為主進程,殺死主進程即可        將uWSGi進程殺死即可。

一些建議

  1. uWSG配置文件的進程數,可以根據實際情況分配。不要開得太大,否則機器可能會內存耗用太高。一般來說,對於一個小社區來說,4個進程已經足夠了。

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

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM