網上有不少相似文章,本文就簡述本身的部署過程php
環境說明:debian、python3.6 、 Django1.11 html
1、運行django項目 啓動就不詳細贅述了:python3 manage.py runserver 0:8899python
2、使用uwsgi提供服務nginx
一、安裝uwsgi : pip3 install uwsgiweb
二、啓動uwsgi : uwsgi --http 127.0.0.1:8899 --module project_name.wsgidjango
就能夠運行你的web項目了,在瀏覽器輸入127.0.0.1:8899訪問項目,若能成功訪問表示這步部署成功。瀏覽器
3、部署到nginxapp
一、安裝nginx : apt-get install nginx socket
二、設置nginx 配置文件php-fpm
由於/etc/nginx/nginx.conf 配置文件中有默認配置 include /etc/nginx/conf.d/目錄下全部.conf配置文件,爲了方便管理,在/etc/nginx/conf.d/目錄下面建立本身的web項目配置文件,例如新建一個my_site.conf文件,具體配置信息以下:
server {
listen 80; #啓動的nginx進程監聽請求的端口
server_name localhost; #域名
error_log /var/log/nginx/project_name/error.log; #nginx錯誤日誌,可自行設置,但必須保證提早創建好該目錄和文件
location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass 127.0.0.1:8899; #對於動態請求,轉發到本機的9090端口,也就是uwsgi監聽的端口
}
#error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location /static/ {
alias /var/www/nginx/manage/static/; #設定靜態文件所在目錄
}
location /media/ {
alias /var/www/nginx/manage/media/; #一樣自行設置,要保證目錄已經建好
}
}
配置文件寫好後,咱們要檢查配置文件的正確性:
nginx -t -c /etc/nginx/nginx.conf
三、同步靜態文件到nginx設置的目錄下面
首先在Django項目setting.py中增長 STATIC_ROOT='/var/www/manage/static/
在命令行執行同步 python manage.py collectstatic自動將全部靜態文件複製到nginx索引目錄
四、啓動uwsgi
在django項目目錄下 uwsgi --socket 127.0.0.1:8899 --module project_app.wsgi
五、啓動nginx
啓動命令:service nginx start 正常啓動後能夠訪問頁面了
4、遇到的問題
一、問題:nginx connect() failed (111: Connection refused) while connecting to upstream
緣由:uwsgi未啓動服務,不用安裝php-fpm服務,更不須要啓動php-fpm服務
將啓動uwsgi : uwsgi --http 127.0.0.1:8899 --module project_name.wsgi 放入supervisor的配置文件(/etc/supervisor/conf.d)內並啓動
參考配置:
[program:managesite] command=uwsgi --socket 127.0.0.1:8899 --module BackStage.wsgi directory=/home/username/project/manage #django項目絕對目錄 startsecs=0 stopwaitsecs=0 autostart=true autorestart=true