Django - 让网站访问更快

使用 CDN 加速

为什么要使用 CDN?

  • 页面卡顿
  • 高并发情况下服务器压力大

CDN 访问的两阶段

  1. 域名解析
  2. 内容请求

CDN 访问的两阶段

加速静态资源访问的两种方法

  1. 使用云端的静态资源 (能够解决国外网站访问慢的问题)
  2. 使用 CDN 加速
    示例:使用阿里云的 OSS 存储静态资源文件
    Django 会自动替换所有静态资源文件的路径为 OSS 文件的路径,并且对 URL 添加鉴权参数
    在 settings 里添加 OSS 设置
    1
    2
    STATIC_ROOT = 'static'
    STATICFILES_STORAGE = 'django_oss_storage.backends.0ssStaticStorage'

使用 CDN 的两种方式

  1. 手工上传静态资源文件到 CDN
  2. 通过 Tengine 把本机的静态资源开放到 Web 上, CDN 自动回流到 Tengine
    1
    2
    3
    location /static {
    alias /data/workspace/recruitment/static;
    }

以手工上传静态资源文件为例,Django 启用 CDN 静态资源加速的步骤

  • 生成静态资源文件, 上传静态资源到 OSS

  • 配置 CDN 域名,回源地址指向 OSS Bucket, 配置 Referer 防盗链的白名单

  • 配置 OSS Bucket 匿名可以读

  • 设置 STATIC_URL,直接指向 CDN 地址,同时注释掉 OssStaticStorage 避免冲突

    1
    2
    STATIC_URL = 'http://icdn.ihopeit.com/static/'
    # STATICFILES_STORAGE = 'django_oss_storage.backends.OssStaticStorage'

    运行如下命令生成各个应用的静态资源文件:

    1
    python manage.py collectstatic --settings=settings.local
  • 阿里云 OSS 控制台

  • 阿里云 CDN 配置

------------- 本文结束 感谢您的阅读 -------------
正在加载今日诗词....