电竞比分网-中国电竞赛事及体育赛事平台

分享

Django+Nginx+Uwsgi項目布署詳細(xì)For Mac

 測試開發(fā)技術(shù) 2022-06-18 發(fā)布于廣東

一、前言

        Django項目準(zhǔn)備好了,那么如何把項目部署到生產(chǎn)環(huán)境是需要接下來要考慮的事情,難不成還用調(diào)試時候用的 python manage.py runserver 0.0.0.0:8000 的這種方式布署,No,答案肯定不是,如果真的這樣弄,那只能為你的項目祈禱了。 OK,閑話少說,這節(jié)就來給大家講解一下,如果將Django項目布署到生產(chǎn)環(huán)境中。

        目前最常用的django部署方式應(yīng)該當(dāng)屬Django+Nginx+Uwsgi組合了。今天 也是重點講解這種方式。

       本文講解的部署環(huán)境以Mac系統(tǒng)操作為準(zhǔn),其它Liunx系的操作系統(tǒng),操作也大同小異。

二、環(huán)境準(zhǔn)備

 1、安裝uwsgi

pip install uwsgi -i https://pypi.douban.com/simple

當(dāng)然在一些Ubuntu系統(tǒng)中,可能在安裝uwsgi前,安裝下述依賴庫,當(dāng)然本文以Mac系統(tǒng)操作為主

apt-get install python-dev #不安裝這個,下面的安裝可能會失敗

2、安裝nginx

brew install nginx

安裝完后,默認(rèn)配置文件目錄:  /usr/local/etc/nginx/nginx.conf

 三、 配置

1、uwsgi配置

一般來講都是通過新建一個uwsgi.ini配置文件 ,將配置項都填寫進(jìn)去,當(dāng)然有可以直接以命令行的參數(shù)協(xié)帶必要的參數(shù)。

主要配置項如下圖所示:

2、Nginx配置

Nginx作為反向代理服務(wù),凌駕于uwsgi協(xié)議服務(wù)之前,整個流程走向原理:

 web client <-> web server(nginx) <-> socket <-> uwsgi <-> Django

Nginx配置主要項:

主要三個參數(shù)需要重點關(guān)注:

1、一個靜態(tài)資源路徑location /static,alias需要配置Django項目存放絕對路徑地址。

2、uwsgi_pass:填寫在uwsgi中socket對應(yīng)的監(jiān)聽地址和端口號。

3、include:  填寫uwsgi_params文件存放的絕對路徑,通常此文件存放在nginx目錄下。

配置完成后,用命令先測試一下,如下:

nginx -t -c /usr/local/etc/nginx/nginx.conf

 四、 啟動

動uwsgi服務(wù)命令: wsgi --ini uwsgi.ini && nginx

 五、 常見問題

1、如果未啟動Nginx,直接通過django+uwsgi組合來啟動django項目時,訪問時,提示 invalid request block size

解決方法:將uwsgi.ini文件中,socket改成http方式,如http = 0.0.0.0:8000

2、如果用nginx監(jiān)控的端口為80時,啟動nginx服務(wù),可能會出現(xiàn)權(quán)限的問題。

解決方法:sudo nginx

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多