日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nginx + uwsgi + Django 应用部署

發布時間:2025/6/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx + uwsgi + Django 应用部署 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天來看下基于Django開發的應用如何在Centos6環境部署


系統環境:Centos6.5 x64

軟件版本:Django 1.9.5 、uwsgi-2.0.13.1


nginx 安裝配置(略)請見:http://tchuairen.blog.51cto.com/3848118/1771597


一、安裝uwsgi

#?安裝有兩種方式#?1、源碼安裝#?從官網下載uwsgi源碼包?:?http://uwsgi-docs.readthedocs.io/en/latest/#?安裝編譯需要的程序包yum?install?libxml2-devel?libxml2?-ycd?uwsgi-2.0.13.1python?setup.py?install#?2、使用工具直接安裝(?pip?or?easy_install?)pip?install?uwsgi#?如果沒有mysql庫,為保證Django正常工作,需要安裝mysql庫pip?install?mysql-python


二、測試uwsgi


準備測試文件

test1.py

def?application(env,?start_response):start_response('200?OK',[('Content-Type','text/html')])return?"uwsgi?ok!"


命令執行

uwsgi?--http?:8001?--wsgi-file?test1.py#?瀏覽器測試?IP:8001


三、配置uwsgi+Django


創建Django wsgi文件(路徑和manage.py文件同級目錄,一般安裝了Django會自帶。)

wsgi.py

import?os import?sysfrom?django.core.wsgi?import?get_wsgi_applicationos.environ.setdefault("DJANGO_SETTINGS_MODULE",?"devops.settings")application?=?get_wsgi_application()


創建 uwsgi 服務主配置文件

uwsgi.ini

[uwsgi] uid?=?www????????????????????????????????????????#?設置啟動的用戶組 gid?=?wwwchdir?=?/alidata/www/fdcode/devops???????????????#?指定項目目錄module?=?wsgi????????????????????????????????????#?加載wsgi.py模塊master?=?true????????????????????????????????????#?啟動主進程,一般設置true或?1processes?=?2????????????????????????????????????#?設置啟動的進程數listen?=?100?????????????????????????????????????#?設置socket監聽隊列大小,超出隊列的請求將會被拒絕;socket?=?/var/run/uwsgi/uwsgi.sock??????????????#?設置socket監聽socket?=?:9090???????????????????????????????????#?設置端口監聽pidfile?=?/var/run/uwsgi/uwsgi.pid???????????????#?指定pid文件vacuum?=?true????????????????????????????????????#?當服務器退出的時候自動刪除unixsocket文件和pid文件。enable-threads?=?true????????????????????????????#?允許用內嵌的語言啟動線程。這將允許你在app程序中產生一個子線程buffer-size?=?32768??????????????????????????????#?設置用于uwsgi包解析的內部緩存區大小為64k。默認是4k。reload-mercy?=?8?????????????????????????????????#?設置在平滑的重啟(直到接收到的請求處理完才重啟)一個工作子進程中,等待這個工作結束的最長秒數。這個配置會使在平滑地重啟工作子進程中,如果工作進程結束時間超過了8秒就會被強行結束(忽略之前已經接收到的請求而直接結束)max-requests?=?5000??????????????????????????????#?為每個工作進程設置請求數的上限。當一個工作進程處理的請求數達到這個值,那么該工作進程就會被回收重用(重啟)。你可以使用這個選項來默默地對抗內存泄漏limit-as?=?512???????????????????????????????????#?通過使用POSIX/UNIX的setrlimit()函數來限制每個uWSGI進程的虛擬內存使用數。這個配置會限制uWSGI的進程占用虛擬內存不超過256M。如果虛擬內存已經達到256M,并繼續申請虛擬內存則會使程序報內存錯誤,本次的http請求將返回500錯誤。harakiri?=?60????????????????????????????????????#?一個請求花費的時間超過了這個harakiri超時時間,那么這個請求都會被丟棄,并且當前處理這個請求的工作進程會被回收再利用(即重啟)daemonize?=?/alidata/log/uwsgi/uwsgi_server.log??#?使進程在后臺運行,并將日志打到指定的日志文件或者udp服務器


啟動服務

uwsgi --ini uwsgi.ini


另一種配置方式


當.ini配置文件不好用時,也可以使用xml配置文件

uwsgi-socket.xml

<uwsgi><socket>127.0.0.1:8001</socket>??????????#?設置監聽地址:端口,如果監聽全部地址則可以這樣寫?:8001?<chdir>/alidata/www/dev/devops</chdir>???#?設置項目目錄<module>wsgi</module>????????????????????#?加載Django的?wsgi.py?模塊<processes>2</processes>?????????????????#?設置進程數<daemonize>uwsgi.log</daemonize>?????????#?設置日志文件路徑 </uwsgi>


啟動服務

uwsgi -x?uwsgi-socket.xml


Nginx 配置文件

django_nginx.conf

server?{listen?80;server_name?abc.xxx.com;location?/?{rewrite?^/$?/ops01/login/?last;include?uwsgi_params;uwsgi_pass?127.0.0.1:9090;}location?/static?{alias?/alidata/www/fdcode/devops/static;}}


uwsgi各項配置參數詳解,請參考 :?http://www.cnblogs.com/zhouej/archive/2012/03/25/2379646.html

轉載于:https://blog.51cto.com/tchuairen/1831281

總結

以上是生活随笔為你收集整理的nginx + uwsgi + Django 应用部署的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。