回到顶部

阅读目录

django 静态文件使用七牛云存储并使用(nginx 转发静态文件)

部署目的

1. 本地的 python manage.py collectstatic 收集到的静态文件,全部上传到七牛云( 收集静态文件时会把静态文件传到七牛云)

2. 当需要使用静态文件时,使用七牛云上的静态文件,访问速度快,提高页面打开速度

参考文档

1. Django storage for 七牛云存储 (可以单独处理 文件,静态文件,media 文件)

2. Nginx 配合七牛云打造自己的 CDN 加速服务

3. Django 项目使用七牛云存储图片 

部署环境

1. nginx : nginx/1.12.2

2. django==1.11.21

3. django-qiniu-storage==2.3.1

# joyoo\joyoo\settings.py (joyoo 为项目名)添加 qiniu-storage 相关配置

# 确保 INSTALLED_APPS 安装了 django.contrib.staticfiles 这个 app
INSTALLED_APPS = [ 'django.contrib.staticfiles',]

# 七牛云账号相关配置 
QINIU_ACCESS_KEY = '' 
QINIU_SECRET_KEY = '' 
QINIU_BUCKET_NAME = '' 
QINIU_BUCKET_DOMAIN = '' 
# 静态文件上传至七牛云配置 
STATIC_URL = QINIU_BUCKET_DOMAIN + '/static_root/' 
# STATICFILES_DIRS 除了各个app的static目录以外还需要管理的静态文件位置 
# 其它存放静态文件的文件夹,可以用来存放项目中公用的静态文件,里面不能包含 STATIC_ROOT 
# 如果不想用 STATICFILES_DIRS 可以不用,都放在 app 里的 static 中也可以 
STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static').replace('\\', '/'), ] 
STATIC_ROOT = 'static_root/' # 设置在七牛云的前缀 
STATICFILES_STORAGE = 'qiniustorage.backends.QiniuStaticStorage' # 只上传静态文件至七牛云

# /usr/local/nginx/conf/vhost/xieboke.net.conf

server {
        listen       80;
        listen       443;
        server_name  www.xieboke.net xieboke.net;
        charset utf-8;

        ssl on;
        ssl_certificate      /root/yzq/ssl/xieboke.net/1_xieboke.net_bundle.crt;
        ssl_certificate_key  /root/yzq/ssl/xieboke.net/2_xieboke.net.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        access_log  /root/yzq/logs/xieboke.net.access.log;
        error_log   /root/yzq/logs/xieboke.net.error.log;

        location / {
             uwsgi_pass 127.0.0.1:9090;
             include uwsgi_params;
    #        root   html;
    #        index  index.html index.htm;
        }

    location /media {
        alias /root/yzq/djangos/blog/media;
    }

    location /static {
        # alias /root/yzq/djangos/blog/static_root;

        # 这里换成七牛云的前缀,使用 proxy_pass,HTTPS 站点可以访问 HTTP 的资源
        proxy_pass http://cdn.xieboke.net/static_root;
        # 这里换成七牛云的前缀,使用 rewrite,HTTPS 站点不能访问 HTTP 的资源
        # rewrite /static/(.*) http://cdn.xieboke.net/static_root/$1;
    }

 }
 

注意事项

网站使用 https, 而 静态文件 使用 http, 配置 static 时要选择 proxy_pass 参数

关于七牛云

  1. 注册七牛云账号 *,要实名认证(好像还要充几块钱),部署的时候要绑定域名(域名必须是 备案 的,然后把域名 解析到七牛云
  2. 云产品 选择 “对象存储”,新建的空间要选择 “公开空间”
^_^
请喝咖啡 ×

文章部分资料可能来源于网络,如有侵权请告知删除。谢谢!

前一篇: google 和 百度 SEO
下一篇: 提问的智慧