django+nginx環境部署
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環境部署