nginx + uwsgi + debian部署django

網上有不少相似文章,本文就簡述本身的部署過程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

相關文章
相關標籤/搜索