twn39 / code

:memo: 代码笔记,通过 issue 的方式记录日常遇到的问题和学习笔记
13 stars 1 forks source link

通过 WhiteNoise 和 Waitress 部署 django 应用 #384

Open twn39 opened 2 years ago

twn39 commented 2 years ago

生产环境部署时,django 的 admin 和 静态文件是分开的,通过 nginx 去 serve 静态文件,配置稍显麻烦,通过 WhiteNoise 和 Waitress 可以 serve 完整的 django 应用。

安装:

pip install whitenoise
pip install whitenoise[brotli]

在 django 中设置 WhiteNoise:

MIDDLEWARE = [
  # 'django.middleware.security.SecurityMiddleware',
  'whitenoise.middleware.WhiteNoiseMiddleware',
  # ...
]

settings.py 中加入:

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

配置 waitress :

from waitress import serve
from djangodemo.wsgi import application

serve(application, listen='*:8060')

最后执行:

python server.py

即可启动,nginx 只需反向代理 :8060 端口即可,无需配置静态文件目录。