在開始配置之前,需要將整個項目文件拷貝一份,然后移入你想要的放置的目錄中。

一、Django配置
1、settings.py配置
復制全局settings.py配置文件,創建一個副本命名為/pro_settings.py,修改DEBUG為False。
DEBUG = False # 填寫你自己的ip和域名 ALLOWED_HOSTS = [“ 192.168.216.137", "localhost", "127.0.0.1"] # 此處設置可以訪問服務器的IP地址,*為允許所以地址

第一次部署的時候,最好先不要修改,否則出錯的時候不容易排錯。
2、wsgi.py配置
# 修改pro_mysite/wsgi.py文件 import os from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'peo_mysite.pro_settings') application = get_wsgi_application()

3、生成requirements.py文件(最好在根目錄下單獨建立一個目錄,用於存放這些文件)
項目部署文件肯定也是運行在python環境下的,那么勢必需要依賴的包文件,所以也需要為部署的項目重新建立一個運行的虛擬環境,並安裝項目運行時所依賴的包、模塊,所以需要先進入開發時的虛擬環境,將安裝的包、模塊導出來,安裝在項目部署的虛擬環境中(注意:有的包、模塊不是我們通過pip install 從源地址安裝的,所以在導出時,需要將其刪除,通過源文件安裝。)
通過>>> pip freeze > requirements.txt
將安裝的第三方包、模塊導出到requirements.txt文件,放在項目中,供部署時安裝。

上面的fdfs-client-py==1.2.6不是通過源地址安裝的,而是直接通過源文件安裝的,所以需要將這個模塊刪除。

通過>>> pip install requirements.txt
安裝從源地址安裝的第三方包、模塊(在此之前,需要創建項目運行虛擬環境),
安裝完成后,再安裝通過源文件安裝的第三方包、模塊,比如我的fdfs-client-py==1.2.6模塊

兩類包、模塊都安裝完成后,接下來就是安裝django項目運行的服務器模塊了(注意:django項目部署時,與我們開發時運行的方式不太一樣;開發時,直接使用命令python manage.py runserver 0:8000就可以了,但是部署時,是運行在一個WSGI服務器上的,此時只需要相關配置,再運行wsgi服務器,就可以起啟動項目了。)
通過>>> pip install uwsgi
安裝WSGI服務器

可以寫一個test.py文件測試uwsgi是否安裝成功

通過>>> uwsgi --http :8000 --wsgi-file test.py
這個命令表示WSGI服務器運行在8000端口,一旦接收到請求,就會將解析請求,並調用test.py文件里的application函數,返回一個響應,



uwsgi配置(創建uwsgi_conf_ini配置文件)
[uwsgi] # 使用nginx連接時使用,Django程序所在服務器地址 # 選擇內網IP和端口 socket=172.26.149.79:8000 # 項目根目錄 chdir=/root/django-projects/dj32_pro/dj32_pro #項目中wsgi.py文件的相對目錄 wsgi-file=dj32_test/wsgi.py # 進程數 processes=2 # 線程數 threads=2 # uwsgi服務器的角色 master=True # 存放進程編號的文件 pidfile=uwsgi.pid # 日志文件,因為uwsgi可以脫離終端在后台運行,日志看不見。以前的runserver是依賴終端的 daemonize=logs/uwsgi.log # 指定虛擬環境所在目錄,不能填相對目錄 virtualenv=/root/python-venv/dj32
要注意上述配置標紅的地方,一定要嚴格遵照執行,
socket:表示項目運行的IP地址和端口號,一定要是內網地址;
chdir:表示項目的根目錄(使用pwd命令獲取);
wsgi-file:表示項目中wsgi.py文件的位置,在主APP下;
daemonize:記錄項目運行的日志,是相對於這個配置文件的位置,不是相對於根目錄,切記;
virtualenv:表示項目運行的虛擬環境的絕對路徑
啟動uwsgi(進入.ini配置文件所在的目錄,啟動uwsgi服務)
啟動uwsgi>>> uwsgi --ini uwsgi_conf.ini
停止uwsgi>>> uwsgi --stop uwsgi.pid
二、nginx配置(想要了解更多,觀看教程:https://www.bilibili.com/video/BV1zJ411w7SV?p=9)
1、安裝nginx(根據自己的系統選擇合適的nginx配置,以Centos為例)
>>> yum -y install nginx
2、啟動nginx,查看啟動狀態,如果啟動狀態為active,則代表啟動成功

3、測試是否安裝成功
nginx默認運行在80端口,可以直接在瀏覽器中訪問,如果有顯示,表示在安裝成功,

4、nginx常用命令(如果不是root用戶,需要在前面加sudo)
停止nginx服務器>>> systemctl stop nginx
啟動nginx服務器>>> systemctl start nginx
重啟nginx服務器>>> systemctl restart nginx
重載配置而不關閉>>> systemctl reload nginx
設為開機自啟動>>>> systemctl enable nginx
取消開機自啟動>>>> systemctl disable nginx
5、nginx配置(找到配置文件的位置,修改配置文件,配置文件的位置,上面已經標出來了)
/etc/nginx/nginx.conf
upstream dj32_pro { # 此處為uwsgi運行的ip地址和端口號 server 172.26.149.79:8000; } server { # 監聽端口 listen 80; # 服務器域名或者ip地址 server_name www.blogcloud.info; # 編碼 charset utf-8; # 文件最大上傳大小 client_max_body_size 75M; # 媒體文件 location /media { alias /home/pyvip/pro_mysite/media; } # 靜態文件 location /static { alias /home/pyvip/pro_mysite/static; } # 主目錄 location / { uwsgi_pass pro_mysite; include /etc/nginx/uwsgi_params; } }
# 修改sudo vim /etc/nginx/nginx.conf # 第一行開頭修改用戶,將www-data改為你當前的用戶 創建 Nginx 運行使用的用戶 www: user root;
user后面跟你自己主機的用戶名

具體看一下nginx配置的全部內容

具體看一下我們配置好的配置文件

測試nginx配置文件是否正確>>> nginx -t -c /etc/nginx/nginx.conf
如果打印如下內容,就表示成功了:

重新加載配置>>> nginx -s reload -c /etc/nginx/nginx.conf
詳細了解nginx配置正向代理、反向代理、負載均衡、動靜分離相關內容請看(https://www.bilibili.com/video/BV1zJ411w7SV?p=9),個人覺得講得不錯。
補充:如果遇到啟動uwsgi和nginx時,啟動失敗,多半是端口占用的問題,那就解除占用
查看指定端口>>> netstat -ap | grep 8000
查看端口>>>>>>netstat -a
殺死進程>>>>>>pkill -9 PID
查看某個程序的進程>>> ps -aux | grep nginx
