ubuntu16.04部署django項目


一、安裝python版本,如python3.6

 一般上傳web項目代碼到/srv/http目錄下,放在root目錄下會有安全危險

1.sudo add-apt-repository ppa:jonathonf/python-3.6
2.sudo apt-get update
3.sudo apt-get upgrade -f
4.apt-get install python3.6
檢查python3.6是否安裝成功

安裝pip3.6

sudo python3.6 -m pip install --upgrade pip

 


檢查pip3.6是否安裝成功

 

 

二、安裝uwsgi

sudo apt-get install python3.6-dev
pip3.6 install uwsgi

 

 

驗證uwsgi安裝是否成功

testuwsgi.py

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

 

uwsgi --http :8001 --wsgi-file testuwsgi.py 

 


 

 

uwsgi啟動 重啟 停止

查看uwsgi.pid

ps ax | grep uwsgi

kill -9 pid

三、uWSGI運行Django

1.通過命令的方式運行django項目

uwsgi --http :8000 --chdir /root/gues/ --wsgi-file gues/wsgi.py --master --processes 4 --stats 127.0.0.1:9191

 


 

運行時會提示報錯,要設置允許遠程訪問

ALLOWED_HOSTS = ['公網ip','內網ip','*'] 內網ip可以不用設置,最好不要設置*,設置公網ip或者內網ip即可。

通過瀏覽器訪問驗證django服務是否啟動成功

 

四、安裝nginx

sudo apt update
sudo apt install nginx

 


nginx默認配置文件路徑

/etc/nginx/sites-available/default

 

 

驗證nginx是否安裝成功

五、Nginx+uWSGI+Django進行整合

1.在django項目根目錄下新建一個uwsgi.ini文件

uwsgi.ini

[uwsgi]
#請求方式與端口號
socket = :8888
#Django項目路徑
chdir = /root/gues
#wsgi文件,項目名稱.wsgi
module = gues.wsgi
#運行主進程存在
master = true
#開啟進程數
processes = 10
#當服務器退出時自動清理環境
vacuum = true

 


uWSGI運行Django方式二,uwsgi通過命令讀取uwsgi.ini配置文件來啟動django web項目


http://180.76.60.102:8888不能通過公網的方式訪問,本地http://127.0.0.1:8888可以訪問

 

2.配置nginx

vim /etc/nginx/sites-available/default

 


server {
listen 80 default_server;
listen [::]:80 default_server;

server_name 127.0.0.1 192.168.15.255; 


root /var/www/html;

# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;

#server_name _;

location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass 127.0.0.1:8888;

}

}

 

 


檢查nginx配置是否成功

nginx -t

 

 

記得配置完nginx后一定要重啟nginx服務

sudo /etc/init.d/nginx restart

 


六、靜態資源配置,靜態資源最好不要配置在root目錄下存在肉雞危險,網站文件一般放在 /srv/http目錄下

 

收集靜態資源到指定目錄

# settings.py

STATIC_ROOT = os.path.join(BASE_DIR, 'static') #指定樣式收集目錄,部署django項目的時候需要用到STATIC_ROOT

 


 

執行命令收集靜態資源

 
python3.6 manage.py collectstatic

 

 

nginx配置靜態資源路由

 

vim /etc/nginx/sites-available/default

 

location /static{
alias /root/gues/static;
}

 


由於項目在root根目錄下,所以訪問靜態資源會提示:403 Forbidden

解決方案,給靜態資源文件夾添加讀寫權限

chmod -R 777 /root/gues/static

 


修改nginx頭部的 user www, www 改成root,方法可以但不建議這么做,服務器存在肉雞危險。

 vim  /etc/nginx/nginx.conf

 

 

 

 

django配置完成。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM