说明

本文将简要说明如何使用反向代理的方式配置七牛云的镜像存储为自定义的域名并使用https访问。阿里云OSS等也类似,大同小异。

反射代理使用nginx,其它的原理一样,可以自行参考配置。

背景

基于网站的带宽及其它原因,图片等一些静态资源文件都存放在七牛云上,以镜像存储方式提供访问。

当然阿里云OSS也可以,但是OSS没有免费的额度,对小型网站来说七牛云的免费额度已足够使用。

因为前段时间把网站升级成了https,使用的是Let's Encrypt的证书,具体可以看这里:申请免费的https证书,Let's Encrypt

所以图片等静态资源访问自然也要用https来处理,一开始使用的是七牛云上签发的免费ssl证书,有效期一年。

刚好前段时间证书到期了,因为没有自动的接口所以还要再去手工进行申请、配置、等待审核,就感觉有点麻烦,而且目前写着限免不知道啥时候就不提供了,所以想着能不能一劳永逸的解决这个问题。

经过一翻思考之后,觉得可以用反向代理的方式来搞定该问题。

域名解析

这里我们需要三个域名,一般使用二级域名即可。

以本站配置为例,分别使用以下三个二级域名:

lstatic.ktanx.com nginx映射的本地静态资源使用域名,也就是七牛镜像使用的镜像源域名,使用http即可。

qnstatic.ktanx.com 七牛云存储空间绑定的自定义域名,使用http即可。

sslstatic.ktanx.com nginx映射的在浏览器中实际访问的静态资源域名,必须是https。

配置lstatic.ktanx.com

lstatic.ktanx.com的配置比较简单,只需要映射一个静态资源目录即可。nginx配置参考如下:

#静态资源配置,七牛镜像用
server
{
  listen 80;
  server_name lstatic.ktanx.com;
  root  /nfs/ktanx/static;#设定资源存放路径
}

配置好该映射后,假设在 /nfs/ktanx/static 目录下有1000.jpg图片,那么使用 http://lstatic.ktanx.com/1000.jpg 就能够访问到了。

配置qnstatic.ktanx.com及七牛云设置

该域名只需要使用CNAME解析并绑定到七牛云存储空间即可:

绑定域名之后,在镜像存储中设置镜像源,也就是上面的 lstatic.ktanx.com 见下图:

经过这一步配置之后,上面能使用 http://lstatic.ktanx.com/1000.jpg 访问的图片也可以使用 http://qnstatic.ktanx.com/1000.jpg 来进行访问了,显示的效果一样,区别在于浏览器访问的图片来源不在你的服务器而在七牛云空间了。只有第一次访问时七牛云发现该图片在空间中不存在才会到你的服务器把该图片抓取过去,之后就没你服务器什么事了。

配置sslstatic.ktanx.com

经过上面两步,如果仅仅使用http而不使用https这已经可以了。qnstatic.ktanx.com可以直接拿去用了。

但我们要用https,所以还需要一个https的反向代理。

参考nginx配置如下:

#静态资源配置 访问用,转到绑定的七牛镜像域名
server
{
       listen       443;
       server_name  sslstatic.ktanx.com;
       ssl                  on;
       ssl_certificate      /ssl/chained.pem;
       ssl_certificate_key  /ssl/domain.key;
       ssl_session_timeout  5m;
       ssl_protocols  SSLv2 SSLv3 TLSv1;
       ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
       ssl_prefer_server_ciphers   on;
       location / {
          proxy_pass http://qnstatic.ktanx.com/;
       }
}

上面配置sslstatic.ktanx.com使用https访问,在实际访问时转向到http://qnstatic.ktanx.com/, 也就是七牛云空间,这跟负载均衡时转到Tomcat是一样的道理。

经过上面的配置, http://qnstatic.ktanx.com/1000.jpg 也可以用 https://sslstatic.ktanx.com/1000.jpg 来访问了,也就是达到了使用https来访问的目的。

这样,你所有的ssl证书及更新操作都在自己的服务器上,都可以自动完成,不用再依赖于七牛签发的证书了。

最后

七牛账号注册及空间创建请自行查看七牛文档。

域名的解析等请自行查看域名注册商的文档。

额外的好处:通过上面的配置其实对七牛的是http访问,七牛每个月http都有免费的额度,而https是没有免费额度的,虽然钱不多但能省则省。

附上七牛免费额度:写10万次/月 读100万次/月

你可能感兴趣的内容
HTTPS 能否避免流量劫持? 收藏,4563 浏览
Nginx + openssl 搭建https服务 收藏,4727 浏览
0条评论

selfly

交流QQ群:32261424
Owner