1. 程式人生 > >django+nginx環境部署

django+nginx環境部署

手機 存儲 www cfi process 運行 code roo 收集

一 環境介紹

python:3.7.2
django:2.1.7
nginx:1.5.5
項目名:proj_foo

二 部署

django.contrib.staticfiles體統便利的管理命令,用戶手機各app中收集靜態文件

2.1 將STATIC_ROOT設置為靜態文件存儲目錄

在修改項目配置文件proj_foo/settings.py
STATIC_URL = ‘/static/‘
STATIC_ROOT = os.path.join(BASE_DIR,‘/static/‘)

STATICFILES_DIRS = (
os.path.join(BASE_DIR, ‘static‘),
‘/var/www/html/littlebear/static/‘

)

MEDIA_ROOT = os.path.join(BASE_DIR, ‘media‘)
MEDIA_URL = ‘/media/‘

2.2 配置proj_foo/urls.py

在文件開頭添加一下配置
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.contrib import staticfiles
設置路由
urlpatterns = [
......
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

urlpatterns += staticfiles_urlpatterns()

2.3 收集靜態文件

通以下命令可將各個app的靜態文件收集至STATIC_ROOT存儲目錄中
python manage.py collectstatic

三 nginx配置

在nginx的配置文件中添加server配置段
upstream django_lb {
server 127.0.0.1:8000;
}
server {
listen 0.0.0.0:80;
charset utf-8;

    location /^media/ {
        alias /var/www/html/littlebear/media/;
    }
    location /^static/ {
        alias /var/www/html/littlebear/static/;
    }
    location / {
        include uwsgi_params;
        uwsgi_pass django_lb;
    }

    error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

重啟nginx服務使配置生效

四 django項目運行

4.1 安裝uwsgi

pip install uwsgi

4.2 使用uwsgi啟動django項目

uwsgi \
--socket 0.0.0.0:8000 \ # 設置默認監聽端口
--chdir /var/www/html/proj_foo \ #項目所在目錄
--wsgi-file proj_foo/wsgi.py \ # wsgi配置文件
--master \ # 啟用master
--processes 1 \ # 啟用進程數
--threads 2 \ # 啟用線程數
--stats 127.0.0.1:9191 # uwsgi監聽狀態端口

django+nginx環境部署