溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Nginx+Uwsgi+Django項(xiàng)目怎么部署到服務(wù)器

發(fā)布時(shí)間:2020-07-28 13:50:23 來(lái)源:億速云 閱讀:125 作者:小豬 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了Nginx+Uwsgi+Django項(xiàng)目怎么部署到服務(wù)器,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

首先先說(shuō)一下思路:

1.本地django項(xiàng)目打包 主要用到的是 python自帶的distutils.core 下的 setup,具體代碼在下面,主要講的兩個(gè)問(wèn)題是package主要打包為和目錄同級(jí)的代碼,例如:TCMS如果還有一個(gè)子文件夾,那就不能自動(dòng)打包了。這個(gè)時(shí)候需要用到data_files。glob(*filename)文件名模式匹配,不用遍歷整個(gè)目錄判斷每個(gè)文件是不是符合。

from distutils.core import setup
import glob

setup(
 name = "demo",
 version = "0.1",
 packages = ['author_zxx','TCMS','static'],
 data_files= glob.glob('templates/*.html')
 )

2.打包用到的木塊,也就是python的庫(kù),pip freeze >> requirement.txt (requirement.txt 問(wèn)文件名,隨便起)

pip freeze > requeirement.txt

3.服務(wù)器安裝虛擬環(huán)境(非常重要,這一步一定要在開(kāi)始。)

yum install virtualenv

yum install cirtualenvwrapper

4.創(chuàng)建虛擬環(huán)境 并且 指定虛擬換 用到的python 解釋器版本

# 創(chuàng)建一個(gè)項(xiàng)目目錄
cd my_project

# 創(chuàng)建虛擬環(huán)境 my_project_env 為虛擬環(huán)境的名稱(chēng)
virtualenv my_project_env

# 指定虛擬環(huán)境所用到的python解釋器版本 -p后面為python解釋器存放的路徑, my_project_env 為虛擬環(huán)境的名稱(chēng)
virtualenv -p /usr/bin/python2.7 my_project_env

# 創(chuàng)建完成虛擬環(huán)境之后會(huì)生成一個(gè)文件夾,之后在bin文件夾中會(huì)有一個(gè)activate,我們?cè)谑褂锰摂M環(huán)境需要激活虛擬環(huán)境,source activate。
source my_project_env/bin/activate

#退出虛擬環(huán)境
deactivate

5.在虛擬環(huán)境中安裝django 和 uwsgi 。要指定安裝版本和開(kāi)發(fā)環(huán)境要一樣

pip install django==3.0.4

pip install uwsgi

6.創(chuàng)建django中的項(xiàng)目

# . 表示在當(dāng)前目錄下創(chuàng)建,如果不加,會(huì)在project_name 下創(chuàng)建一個(gè)同名的目錄。
django-admin startproject 'project_name' .

7. 將項(xiàng)目通過(guò)FileZilla 或者其他交互軟件,傳入到剛剛所創(chuàng)建的目錄中。

8.項(xiàng)目上傳完畢之后,需要安裝我們所需要的包。

# 剛剛 pip freeze > requirement.txt 所得
pip install -r requirement.txt

9.完成之后,可以通過(guò) python manage.pu runserver 進(jìn)行測(cè)試,是否成功。顯示出下面得內(nèi)容,即為成功。

May 08, 2020 - 10:53:33
Django version 3.0.4, using settings 'TsmWeb.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

10.之后我們需要安裝uwsgi替我們代替 python manage.py runserver. 因?yàn)樵谏a(chǎn)環(huán)境中我們不可能一直手動(dòng)得去開(kāi)啟服務(wù)器,這個(gè)時(shí)候就需要uwsgi,剛剛已經(jīng)安裝過(guò)uwsgi。我們?cè)诜?wù)器項(xiàng)目目錄下創(chuàng)建一個(gè)test.py 文件。

# test.py

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

11. 之后在linux 命令行輸入

uwsgi --http :8001 --wsgi-file /‘路徑,從跟開(kāi)始'/test.py

如果出現(xiàn)下面得代碼,則表示成功:

*** Starting uWSGI 2.0.18 (64bit) on [Fri May 8 11:00:36 2020] ***
compiled with version: 4.8.5 20150623 (Red Hat 4.8.5-39) on 07 May 2020 02:26:03
os: Linux-3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020

12.之后我們需要安裝Nginx

yum install -y pcre pcre-devel

yum install -y zlib zlib-devel

yum install gcc-c++
yum install -y openssl openssl-devel

wget -c https://nginx.org/download/nginx-1.14.0.tar.gz

tar -zxvf nginx-1.14.0.tar.gz

cd nginx-1.14.0
./configure

make
make install

13.之后測(cè)試nginx是否可以正常使用,我們需要進(jìn)到nginx文件下得sbin/ 目錄,運(yùn)行  ./nginx ,之后在瀏覽器訪問(wèn)我們地址即可。如果出現(xiàn) Welcome to Nginx! 即表示成功

14.現(xiàn)在是nginx和uwsgi配置,這個(gè)也是最頭疼的。

# uwsgi 官網(wǎng)
https://uwsgi-docs.readthedocs.io/en/latest/


# nginx主要問(wèn)題在 nginx.conf,下面附上詳解
https://www.jb51.net/article/131362.htm

看完上述內(nèi)容,是不是對(duì)Nginx+Uwsgi+Django項(xiàng)目怎么部署到服務(wù)器有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI