1. 程式人生 > >Centos安裝Nginx+uWSGI+Django

Centos安裝Nginx+uWSGI+Django

----------------------------------------------------------------------------------

1、安裝uWSGI

pip install uwsgi
uwsgi --version

2、測試uWSGI

新建test.py,內容如下

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

執行命令

uwsgi -s 127.0.0.1:8080 -w test.py

-s 代表啟動一個socket,監聽對應埠,當前設定為8080埠

-w 為 --wsgi-file 的簡寫,指定執行檔案

開啟瀏覽器,訪問 127.0.0.1:8080 檢視是否可以準確訪問。

3、新建Django工程

安裝Django

pip install django

新建test工程

cd ~
django-admin.py startproject test

4、uWSGI配置檔案

uwsgi.ini 檔案

[uwsgi]
socket = 127.0.0.1:8080 // 繫結埠
master = true           // 主程序
vhost = true            // 多站模式
no-site = true          // 多站模式時不設定入口模組和檔案
workers = 2             // 子程序數
reload-mercy = 10       // 設定在平滑的重啟(直到接收到的請求處理完才重啟)一個工作子程序中,等待這個工作結束的最長秒數
vacuum = true           // 退出、重啟時清理檔案
max-requests = 1000     // 為每個工作程序設定請求數的上限
limit-as = 512          // 限制每個uWSGI程序的虛擬記憶體使用數
buffer-size = 32768     // 用於uwsgi包解析的內部快取區大小。預設是4k

pidfile = ~/uwsgi8080.pid    // 在失去許可權前,將pid寫到指定的pidfile檔案中。
daemonize = ~/uwsgi8080.log   // 使程序在後臺執行,並將日誌打到指定的日誌檔案或者udp伺服器

對於 pidfiledaemonize 的路徑需要自行配置,埠也需自行修改

** 修改 nginx.conf 中 http.server.location 的值 **

修改後如下:

location / {
    include uwsgi_params;               # uwsgi程式
    uwsgi_pass 127.0.0.1:8080;          # 在uwsgi.ini中的socket埠
    uwsgi_param UWSGI_SCRIPT test.wsgi; # test.wsgi為django生成的wsgi配置檔案,在test/test/目錄下
    uwsgi_param UWSGI_CHDIR /root/test; # 繫結django工程的根路徑
    index index.html;
    client_max_body_size 35m;
}

對於其test 需要和自定義的專案名稱一致

5、啟動

載入配置檔案

uwsgi --ini uwsgi.ini

啟動nginx

使用瀏覽器開啟對應伺服器ip地址即可

當django專案中修改後,需要重新載入uwsgi

uwsgi --reload pid檔案路徑