一、安裝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安裝是否成功
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配置完成。