新建一個(gè)XML文件:
djangochina_socket.xml,將它放在/data/www/org_management目錄下:
Nginx采用8077端口與uWSGI通訊,請(qǐng)確保此端口沒有被其它程序采用
<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è)你將會(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ì)找不到
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è)置后,可以讓Nginx來處理靜態(tài)文件(/static/ 和 /media/ )。非靜態(tài)文件請(qǐng)求Nginx會(huì)發(fā)給 socket 8077,然后讓uWSGI來進(jìn)行處理。
Nginx+uWSGI+Django的實(shí)現(xiàn)方式
在完成上面配置后,需要按以下步驟來做:
重啟Nginx服務(wù)器,以使Nginx的配置生效。
nginx -s reload
重啟后檢查Nginx日志是否有異常。
啟動(dòng)uWSGI服務(wù)器
/data/www/org_management uwsgi -x djangochina_socket.xml
檢查日志 uwsgi.log 是否有異常發(fā)現(xiàn)。
訪問服務(wù)
基于上面的假設(shè)你的域名是www.you.com
因此,我們?cè)L問 www.you.com,如果發(fā)現(xiàn)程序與 單獨(dú)使用Django啟動(dòng)的程序一模一樣時(shí),就說明成功啦!
關(guān)閉服務(wù)的方法 killall uwsgi 關(guān)閉所有uwsgi 在開啟進(jìn)程中可以設(shè)定一個(gè)uwsgi為主進(jìn)程,殺死主進(jìn)程即可 將uWSGi進(jìn)程殺死即可。
一些建議
uWSG配置文件的進(jìn)程數(shù),可以根據(jù)實(shí)際情況分配。不要開得太大,否則機(jī)器可能會(huì)內(nèi)存耗用太高。一般來說,對(duì)于一個(gè)小社區(qū)來說,4個(gè)進(jìn)程已經(jīng)足夠了。
一般情況下,可以編寫一下 stop.sh 腳本 來關(guān)閉uWSGI。
http://www.cnblogs.com/zhaoyingjie/p/7103886.html