使用uwsgi配置django


1、uwsgi的安裝

pip install uwsgi

2、uwsgi的基本測試:

創建一個test.py文件,內容如下:

def application(env, start_response):
   start_response('200 OK', [('Content-Type','text/html')])
   return "Hello World"

啟動uwsgi:
uwsgi --http :9000 --wsgi-file test.py

通過瀏覽器訪問http://127.0.0.1:9000,會輸出"Hello World"

3、編寫uwsgi配置文件/etc/uwsgi.ini,內容如下:

[uwsgi]
uid = nginx
gid = nginx

master = true
processes = 2
listen = 120
socket = 127.0.0.1:9000
pidfile = /var/run/uwsgi.pid
vacuum = true
daemonize = /var/log/uwsgi.log

各配置項說明如下:

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

 

啟動uwsgi:

uwsgi --ini /etc/uwsgi.ini

 

4、nginx配置文件

server {
        listen       80;
        server_name  localhost;
        index  index.html index.htm;
        client_max_body_size 35m;
        location / {            
            include  uwsgi_params;
            uwsgi_pass  127.0.0.1:9090;
            uwsgi_param UWSGI_SCRIPT demosite.wsgi;    #指定加載的模塊
            uwsgi_param UWSGI_CHDIR /webser/www/demosite;  #指定項目目錄
        }
    }

 


免責聲明!

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



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