Centos安裝Nginx+uWSGI+Django
阿新 • • 發佈:2019-01-07
----------------------------------------------------------------------------------
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伺服器
對於 pidfile 和 daemonize 的路徑需要自行配置,埠也需自行修改
** 修改 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檔案路徑