介紹django應用如何藉助寶塔面板下的插件pythonmanager和nginx完成部署,部署中使用的pythonmanager模式爲uwsgi模式
預備工作
- 保證django應用能在本地部署運行且靜態文件訪問正常
- 保證對應的端口開啓並且未被佔用,文中可能會使用到8001,8002
- 寶塔面板,nginx以及pythonmanager已安裝
一、上傳項目
通過BT面板或者xshell等工具上傳項目文件夾
這裏使用xftp進行上傳,上傳對應的服務器路徑爲/www/wwwroot/{項目名}
二、pythonmanager下的部署
登陸寶塔面板,在首頁點擊python項目管理器圖標,添加新的項目
路徑爲{基路徑}/{項目名}
,python版本自己選擇,啓動文件夾爲{基路徑}/{項目名}/{項目的主項目}
,主項目下包含有wsgi.py
文件,端口暫時爲8002,後面添加nginx後會修改端口,如果沒有requirement.txt
文件的話不用勾選安裝模塊依賴
確認項目已啓動
通過{ip}:8002
進行訪問,不出意外的話,會出現503錯誤,如果沒有出現錯誤就直接下一步
如果當前項目的狀態爲運行中,先暫停這個項目,在點擊配置,修改配置文件。每一次修改配置文件都需要先關閉python管理器中的項目
[uwsgi]
http = 0.0.0.0:8002
chdir=/www/wwwroot/test_bt/
module = test_bt.wsgi:application
master = true
processes=2
threads=2
max-requests=2000
chmod-socket=664
vacuum=true
daemonize = /www/wwwroot/test_bt/test_bt/uwsgi.log
# 用於查看項目啓動日誌
再次啓動,如果依然有錯誤,使用 cat /www/wwwroot/test_bt/test_bt/uwsgi.log
查看錯誤日誌,若缺少依賴,在模塊管理中安裝
此時打開發現靜態文件沒有成功的加載,因爲我們並沒有在uwsgi中配置靜態文件路徑,我們會在下一步的nginx中進行配置。
三、Nginx配置靜態文件
打開寶塔面板的nginx,點擊添加網站,我這邊沒有申請域名直接使用{ip}:{8001}
,這裏是8001不是第二步的8002,8001會留給uwsgi作爲和nginx進行socket通信的端口,這裏意味着下次你訪問這個應用的方式就是{ip}:{8001}/index.html
重新打開網站的nginx配置頁面,在localtion ~ .*\.(js|css)?$
下面,添加兩行靜態配置和uwsgi配置,這裏截圖中的路徑和之前使用的路徑不一致,因爲我的這個服務器已經部署了一個nginx服務,nginx好像沒法部署兩個同域名的服務
配置文件爲:
location /static {
alias /www/wwwroot/test_bt/static;
}
location / {
include /www/server/nginx/conf/uwsgi_params;
uwsgi_pass 127.0.0.1:8002;
}
這一步可能出現錯誤在nginx找不到對應的uwsgi_params,如果出現nginx出現inner error的話請查看nginx的access_log和error_log。nginx的配置文件就修改完成了,最後一步就是將uwsgi.ini
配置文件中的http = 0.0.0.0:8002
修改爲socket = :8002
重啓python項目管理器裏的項目,不出意外的話靜態文件也能加載了,大功告成
寫在最後
- 這裏還有一個爲解決的問題時python項目管理器1.5版本中的項目開機其自動是不可用的,如果需要使用的話,看我另外一篇博客
- 如果依然有錯誤出現,請查看uwsgi啓動日誌,nginx的
access_log
和error_log
以及django項目下的日誌文件 - 有其他問題的話 也可以在評論中詢問
- 測試項目的gitee地址 test_bt
- 如果覺得這篇文章對你有幫助的話,請點贊,收藏哦