Django-让网站访问更快
使用CDN加速
为什么要使用 CDN?
- 页面卡顿
- 高并发情况下服务器压力大
CDN访问的两阶段
- 域名解析
- 内容请求
加速静态资源访问的两种方法
- 使用云端的静态资源 (能够解决国外网站访问慢的问题)
- 使用CDN加速
**示例:**使用阿里云的 OSS 存储静态资源文件
Django 会自动替换所有静态资源文件的路径为 OSS 文件的路径,并且对 URL 添加鉴权参数
在settings里添加OSS设置
1 | STATIC_ROOT = 'static' |
使用 CDN 的两种方式
- 手工上传静态资源文件到 CDN
- 通过 Tengine 把本机的静态资源开放到Web上, CDN自动回流到 Tengine
1
2
3location /static {
alias /data/workspace/recruitment/static;
}
以手工上传静态资源文件为例,Django 启用 CDN 静态资源加速的步骤
-
生成静态资源文件, 上传静态资源到 OSS
-
配置 CDN 域名,回源地址指向 OSS Bucket, 配置 Referer 防盗链的白名单
-
配置 OSS Bucket 匿名可以读
-
设置 STATIC_URL,直接指向 CDN 地址,同时注释掉 OssStaticStorage 避免冲突
1
2STATIC_URL = 'http://icdn.ihopeit.com/static/'
# STATICFILES_STORAGE = 'django_oss_storage.backends.OssStaticStorage'运行如下命令生成各个应用的静态资源文件:
1
python manage.py collectstatic --settings=settings.local