溫馨提示×

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

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

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

發(fā)布時(shí)間:2021-06-17 10:03:46 來源:億速云 閱讀:131 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04”這篇文章吧。

1.前期準(zhǔn)備

1.打開Terminal終端,執(zhí)行以下命令,將項(xiàng)目所需要的依賴包,都記錄到一個(gè)文件內(nèi)備用。

pip freeze >requirements.txt

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

2.將項(xiàng)目文件夾→右鍵→添加壓縮文件,壓縮為zip包

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

3.準(zhǔn)備軟件

1.xshell(用于遠(yuǎn)程操作服務(wù)器)2.FileZilla(用于從客戶端將項(xiàng)目包上傳到服務(wù)器)3.Navicat 12 (用于同步數(shù)據(jù)庫(kù))

4.環(huán)境云

服務(wù)器/云主機(jī):京東云

(云服務(wù)還是要選大廠的,我也試過一些比較小的廠的云服務(wù),不說是哪家了,哇,簡(jiǎn)直是坑啊,各種報(bào)錯(cuò)各種什么都安不上。友情提醒,云服務(wù)還是要在騰訊云、阿里云、百度云、金山云、京東云、網(wǎng)易云這些里面選用吧。國(guó)外的像亞馬遜啊,雖然云計(jì)算的技術(shù)上可能領(lǐng)先于國(guó)內(nèi)云,價(jià)格也更加公道,但是,有些事,大家應(yīng)該懂得,所以,貴是貴了點(diǎn),還是選國(guó)內(nèi)的吧。)

系統(tǒng):Ubuntu16.04 64位

2.基本配置

1.使用xshell鏈接云服務(wù)器/云主機(jī)系統(tǒng)(云服務(wù)器和云主機(jī)在這里概念差不多可以等同,后面都叫云服務(wù)器)1.打開xshell→【文件】→【新建】,輸入你云服務(wù)器的公網(wǎng)ip

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

2.選擇剛剛建立的會(huì)話,然后點(diǎn)【連接】

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

3.輸入登錄用戶名:root

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

4.輸入登錄密碼

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

5.連接成功

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

2.新建用戶ubuntu

1.執(zhí)行命令

adduser ubuntu
#設(shè)置密碼
#確認(rèn)密碼
#設(shè)置姓
#設(shè)置名
#設(shè)置電話
#設(shè)置家庭電話
#除了密碼以為,其他的這些信息用處不大
y+回車
cd /home #切換到家目錄下
ls #查看家目錄下的目錄,可以看到ubuntu的目錄已經(jīng)建立

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

2.切換用戶ubuntu

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

3.給普通用戶ubuntu添加權(quán)限

#切換回root用戶
su root
#輸入root登錄密碼
chmod u+w /etc/sudoers #給sudoers增加寫權(quán)利
vim /etc/sudoers#編輯sudoers,在找到這行 root ALL=(ALL) ALL,在他下面添加ubuntu   ALL=(ALL)   NOPASSWD: ALL
chmod u-w /etc/sudoers#取消sudoers的寫權(quán)利
su ubuntu #切換會(huì)ubuntu用戶

3.同步數(shù)據(jù)庫(kù)

1.安裝mysql數(shù)據(jù)庫(kù)

sudo apt-get install mysql-server -y
#設(shè)置密碼:(不顯示,請(qǐng)將密碼設(shè)置的與客戶端上數(shù)據(jù)庫(kù)密碼一致,方便使用)
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev -y

2.配置遠(yuǎn)程連接權(quán)限

su root #切換root用戶
#root 登錄密碼
vim /etc/mysql/mysql.conf.d/mysqld.cnf 
# 英文輸入環(huán)境下,敲 i 鍵,進(jìn)入插入模式
#上下左右鍵移動(dòng)光標(biāo),注釋掉 bind-address = 127.0.0.1
#英文輸入環(huán)境下,敲Esc鍵,輸入:wq 保存退出
mysql -u root -p
#輸入密碼(不顯示),登錄mysql

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

flush privileges;

quit
#用Navicat鏈接服務(wù)器數(shù)據(jù)庫(kù),如果報(bào)錯(cuò):
fuser -k 3306/tcp
#將客戶端數(shù)據(jù)庫(kù)通過數(shù)據(jù)傳輸,傳輸?shù)椒?wù)器

3.使用Navicat 12 同步數(shù)據(jù)庫(kù)

1.創(chuàng)立連接

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

2.建立本地連接

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

3.建立服務(wù)器鏈接

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

4.傳輸數(shù)據(jù)庫(kù)

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

然后點(diǎn)擊【開始】等待傳完100%

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

5.查看一下數(shù)據(jù)庫(kù)是否上傳成功

mysql -u root -p
show databases;#查看所有數(shù)據(jù)庫(kù)
quit #退出數(shù)據(jù)庫(kù)

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

4.取消遠(yuǎn)程連接數(shù)據(jù)庫(kù)權(quán)限

vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 英文輸入環(huán)境下,敲 i 鍵,進(jìn)入插入模式
#上下左右鍵移動(dòng)光標(biāo),去掉 bind-address = 127.0.0.1這行的注釋
#英文輸入環(huán)境下,敲Esc鍵,輸入:wq 保存退出

4.上傳項(xiàng)目

su ubuntu #切換回ubuntu用戶

1.使用FileZilla上傳項(xiàng)目zip包

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

2.解壓項(xiàng)目zip包

sudo apt install unzip
unzip xueyiwang.zip

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

5.安裝Python3.6

sudo add-apt-repository ppa:fkrull/deadsnakes #然后會(huì)提示你敲擊回車鍵
#回車
sudo apt-get install python-software-properties -y
sudo apt-get update
sudo apt-get install python3.6-dev python3.6-venv -y

sudo apt install python-pip -y

6.配置虛擬環(huán)境

1.安裝依賴包

python3.6 -m venv env36
#在當(dāng)前目錄下,創(chuàng)建一個(gè)python3.6的虛擬環(huán)境,取名為env36,目前自帶虛擬環(huán)境只支持到3.6.2

. env36/bin/activate
#進(jìn)入虛擬環(huán)境
#退出虛擬環(huán)境 deactivate


cd xueyiwang
pip3 install -r requirments.txt
#安裝相關(guān)依賴包,其中requirments.txt,是在客戶端時(shí),通過pip freeze > requirments.txt獲得
#這個(gè)過程也許需要多等一會(huì),比較low一點(diǎn)的云服務(wù)就慢一些,親身體驗(yàn),bat里,百度的最慢
#有可能pip要升級(jí),如果版本過時(shí),會(huì)提示用戶更新命令的

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

2.修改settings.py

cd xueyiwang
vim settings.py

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

#進(jìn)入settings.py文件中,點(diǎn)擊i鍵,變?yōu)榫庉嬆J?
#通過上下左右鍵移動(dòng)光標(biāo)
ALLOWED_HOSTS = ['公網(wǎng)ip']
#在最底追加
STATIC_ROOT=os.path.join(BASE_DIR,"static/")
#然后敲Esc鍵,輸入:wq 保存退出

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

3.測(cè)試運(yùn)行項(xiàng)目

cd ..
python manage.py runserver 0.0.0.0:8000 
#瀏覽器訪問:公網(wǎng)ip+8000 
#發(fā)現(xiàn)啥都有啦!
#ctrl+c退出項(xiàng)目運(yùn)行狀態(tài)

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

7.虛擬環(huán)境中安裝uwsgi

1.安裝

cd ~
pip3 install uwsgi

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

2.檢測(cè)是否安裝成功

cd xueyiwang
uwsgi --http :8000 --module xueyiwang.wsgi

#通過uwsgi啟動(dòng)項(xiàng)目,這一步必須在項(xiàng)目目錄下操作執(zhí)行
#ctrl+C鍵關(guān)閉項(xiàng)目服務(wù)狀態(tài)
#fuser -k 8000/tcp
#關(guān)閉8000端口占用
#瀏覽器訪問公網(wǎng)ip+8000 仍然可以正常訪問,證明uwsgi安裝成功

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

8.安裝配置nginx

1.安裝nginx

cd ..
sudo apt install nginx -y

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

2.配置uwsgi與nginx連接

cd xueyiwang
cp /etc/nginx/uwsgi_params .  #在項(xiàng)目目錄下執(zhí)行,注意后面這個(gè)點(diǎn)兒別落下 
#回到~目錄下
cd ..

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

3.配置uwsgi.ini

vim uwsgi.ini
#進(jìn)入uwsgi.ini,然后在英文輸入下敲i鍵,進(jìn)入插入模式,將以下內(nèi)容填充進(jìn)去(通過敲i鍵進(jìn)入插入模式這一步不能省略,不然粘貼進(jìn)去的內(nèi)容會(huì)部分丟失)
#然后在英文輸入下,Esc鍵,然后輸入冒號(hào)wq+回車,保存退出。
[uwsgi]
chdir=/home/ubuntu/xueyiwang
module=xueyiwang.wsgi:application
home=/home/ubuntu/env36
master=true
processes=10
socket=:8001
chmod-socket = 666
vacuum=true

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

4.配置nginx

#cd 到項(xiàng)目目錄下
vim xueyiwang_nginx.conf
#新建進(jìn)入了nginx.conf文件
#在英文輸入法下,敲i鍵,進(jìn)入可插入模式
#粘貼以下內(nèi)容
upstream django {
  # server unix:/root/xueyiwang/xueyiwang.sock; # for a file socket
  server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}
 
# configuration of the server
server {
  # the port your site will be served on
  listen   8000;
  # the domain name it will serve for
  server_name .example.com; # substitute your machine's IP address or FQDN
  charset   utf-8;
 
  # max upload size
  client_max_body_size 75M;  # adjust to taste
 
  # Django media
  location /media {
    alias /home/ubuntu/xueyiwang/media; # your Django project's media files - amend as required
  }
 
  location /static {
    alias /home/ubuntu/xueyiwang/static; # your Django project's static files - amend as required
  }
 
  # Finally, send all non-media requests to the Django server.
  location / {
    uwsgi_pass django;
    include  /home/ubuntu/xueyiwang/uwsgi_params; # the uwsgi_params file you installed
  }
}

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

5.建立軟鏈接

復(fù)制代碼 代碼如下:

sudo ln -s /home/ubuntu/xueyiwang/xueyiwang_nginx.conf /etc/nginx/sites-enabled/

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

6.手機(jī)靜態(tài)文件

#cd 到項(xiàng)目目錄下執(zhí)行
python manage.py collectstatic
#yes

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

7.最后測(cè)試

#修改settings.py中
DEBUG = False
cd ~
sudo service nginx restart
#重啟nginx
#啟動(dòng)uwsgi
uwsgi --ini uwsgi.ini
#瀏覽器訪問http://公網(wǎng)ip:8000

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04

代碼如下:

#瀏覽器訪問公網(wǎng)ip+:8000 可以看到,能夠正常訪問,靜態(tài)文件和媒體文件都在,說明nginx代理正常。

以上是“django2+uwsgi+nginx如何部署到服務(wù)器Ubuntu16.04”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(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