服務器:阿里雲ECS;系統版本:centos8.0;Nginx版本:0.14.1;uWSGI版本:2.0.18;Python版本:3.6.0。html
項目依賴及版本以下:python
Django==2.0 django-mdeditor==0.1.17.1 django-model-utils==4.0.0 django-notifications-hq==1.6.0 Markdown==3.2.1 PyMySQL==0.9.3
uwsgi.ini
文件,vi uwsgi.ini
輸入如下內容:[uwsgi] #使用nginx鏈接時使用 socket=127.0.0.1:8000 #直接作web服務器使用 python manage.py runserver ip:port #http=0.0.0.0:8000 #項目目錄 chdir=/root/project/myblog #項目中wsgi.py文件的目錄,相對於項目目錄 wsgi-file=myblog/wsgi.py #指定啓動的工做進程數 processes=2 #指定工做進程中的線程數 threads=2 #指定在這些進程裏有一個主進程 master=True #保存啓動以後主進程的pid pidfile=uwsgi.pid #設置uwsgi後臺運行,uwsgi.log保存日誌信息 daemonize=uwsgi.log #設置日誌文件最大字節數 log-maxsize = 100000 #設置每一個進程最大請求數 max-requests = 1000 #設置虛擬環境的路徑 virtualenv=/root/anaconda3/envs/myblog
也可參考 Django官方文檔, Nginx中文文檔自定義配置。
啓動服務:uwsgi --ini uwsgi.ini 中止服務:uwsgi --stop uwsgi.pid
/etc/nginx/conf.d
文件夾,新建本身的項目配置文件myproject.conf
,輸入下面的配置。server { listen 80; server_name ip; charset utf-8; client_max_body_size 75M; location /static { alias /root/project/myblog/static; } location /media { alias /root/project/myblog/media; } location / { uwsgi_pass 127.0.0.1:8000; include /etc/nginx/uwsgi_params; } }
service nginx restart
問題一:nginx靜態資源文件沒法訪問,403 forbidden錯誤
解決方法: 在 nginx.conf
配置文件頭部加user root
nginx
user root; worker_processes 8; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker\_connections 1024; } ... ...
若是後臺站點樣式沒法顯示,則是未進行靜態文件收集操做的緣由,可在終端輸入python manage.py collectstatic
解決。前提是許在settings.py
文件配置好STATIC_ROOT = os.path.join(BASE_DIR, "static")
。