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