Django web項(xiàng)目部署

1.項(xiàng)目準(zhǔn)備

在上傳項(xiàng)目之前首先,將項(xiàng)目所需要的模塊取出來放在XX.txt文件中一道上傳至服務(wù)器
通過命令行窗口在項(xiàng)目所在的虛擬環(huán)境中鍵入如下命令:

pip freeze > pkg.txt # 將項(xiàng)目所依賴的模塊寫入pkg.txt文件中保存
image.png

然后將準(zhǔn)備要發(fā)布的web項(xiàng)目通過FTP上傳到指定的linux/unix服務(wù)器上
案例項(xiàng)目:mysite/

image.png

最后在服務(wù)器端建立好工作目錄以及虛擬環(huán)境
linux/unix環(huán)境下通過如下方式創(chuàng)建虛擬環(huán)境

virtualenv -p /usr/bin/python django_lib

安裝需要的數(shù)據(jù)庫:
如安裝mysql數(shù)據(jù)庫:

apt-get/yum install mysql-server mysql-client

至此前期準(zhǔn)備工作完成。


image.png

2.項(xiàng)目部署

2.1安裝uwsgi服務(wù)器

pip install uwsgi  # 安裝uwsgi服務(wù)器
pip list # 可查看是否安裝

在項(xiàng)目中部署uwsgi服務(wù)
在項(xiàng)目根目錄下創(chuàng)建uwsgi.ini配置文件

touch uwsgi.ini

編輯配置文件

  1 # 添加配置選項(xiàng)                                                                           
  2 [uwsgi]
  3 # 配置和nginx連接的socket連接
  4 socket=127.0.0.1:8000
  5 # 配置項(xiàng)目路徑
  6 chdir=/home/worker/mysite
  7 # 配置wsgi接口模塊文件路徑,相對路徑
  8 wsgi-file=mysite/wsgi.py
  9 # 配置啟動的進(jìn)程數(shù)量
 10 processes=4
 11 # 配置每個進(jìn)程啟動的線程數(shù)量
 12 threads=2
 13 # 配置存放主進(jìn)程編號的文件
 14 pidfile=uwsgi.pid
 15 # 配置dump日志路徑
 16 daemonize=uwsgi.log

啟動uwigi服務(wù)器

uwsgi --ini uwsgi.ini

2.2安裝nginx

sudo apt-get install nginx

查看nginx是否運(yùn)行

ps -ef|grep nginx
image.png

停止nginx

nginx -s stop

進(jìn)入/etc/nginx目錄下修改配置文件

vi nginx.conf
 1 user root;
   ....
 64     server{
 65         listen 80; # 監(jiān)聽80端口,服務(wù)啟動的時候就可以監(jiān)聽這個端口接收到的請求
 66         server_name 192.168.11.110; # 配置服務(wù)器名稱,一般指定IP地址即可
 67 
 68         location /{
 69             include uwsgi_params; # 指定接收到的請求中可以包含的數(shù)據(jù)類型
 70             uwsgi_pass 127.0.0.1:8000; #指定將請求反向轉(zhuǎn)發(fā)到后端某個服務(wù)器~ uwsgi服務(wù)器的
    socket選項(xiàng)
 71         }
image.png

image.png

配置結(jié)束后,啟動nginx

nginx

2.3在瀏覽器中訪問服務(wù)器中的項(xiàng)目

image.png

雖然此時已經(jīng)能夠訪問到項(xiàng)目,但是所有的靜態(tài)資源文件還沒有被加載

2.4加載靜態(tài)資源文件

在項(xiàng)目根目錄下創(chuàng)建static_file文件夾用于存放靜態(tài)文件

image.png

進(jìn)入根項(xiàng)目文件夾下,修改項(xiàng)目的配置文件setting.py
在setting.py文件的最后添加如下代碼:

...
STATIC_ROOT='/home/worker/mysite/static_file'

復(fù)制靜態(tài)文件到static_file文件夾

python manage.py collectstatic

再次編輯nginx.conf文件,配置靜態(tài)資源代理:

...
 72         location /static{ # 配置靜態(tài)資源訪問處理,如果客戶端請求/static/..就自動轉(zhuǎn)發(fā)到/ho    me/worker/mysite/static_file
 73             alias /home/worker/mysite/static_file/;
 74         }
...

編輯完成后重新啟動nginx

nginx -s reload

2.5在瀏覽器中訪問項(xiàng)目的后臺管理界面,查看靜態(tài)資源文件是否成功加載

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容