NAS+Cloudflare+Lsky,还花什么钱买图床和CDN!

NAS+Cloudflare+Lsky

在正式开始之前,笔者想先声明下,写这篇文章并不是为了忽悠大家捣鼓NAS,如果你不喜欢折腾或者不太爱动手的话,又或者不在乎小钱钱,笔者其实是不建议这么折腾这些奇技淫巧的,因为笔者也不能保证这种折腾的玩法能玩多久、会不会玩脱,请慎重将接下来的方法用于生产环境或商业场景。

先说说背景吧。直到现在,笔者的博客和公众号一直用的是qiniu的对象存储和CDN作为图床,但是最近两个月,随着博客的访问量越来越大,图床CDN的费用也是水涨船高,有时候一天就有几个GB的回源,实在是有点吃不消,毕竟笔者的博客也不挣钱。

凑巧,笔者最近一直在研究Cloudflare的各种功能,于是就萌生了这么一套方案:在NAS上搭建兰空Lsky图床系统,并使用Cloudflare的隧道穿透实现公网访问图片。这样既可以使用NAS替代对象存储,又可以利用Cloudflare的边缘缓存(CDN)加速图片访问速度,还不花一分钱钱,岂不是一举三得!

操作方法

下面是笔者画的一张简单的原理图,不专业手法莫见怪。
NAS+Cloudflare+兰空Lsky

操作步骤其实并不复杂,主要有以下几步,只要理解了上面的原理图就非常容易上手。

  1. 在NAS中安装Lsky服务器
  2. Cloudflare Tunnels中为NAS中的Lsky映射一个域名
  3. 在Lsky后台配置图片访问地址,并上传图片
  4. 在Cloudflare设置边缘缓存TTL,加快图片的访问速度,

下面一步步开始讲解:

1.在NAS中部署Lsky服务器

Lsky是一个用于在线上传、管理图片的图床程序,中文名:兰空图床,你可以将它作为自己的云上相册,亦可以当作你的写作贴图库。关于Lsky具体有哪些特性和功能,不是本文的重点,感兴趣的朋友可以直接到官网细看。

官方介绍中都是使用源码进行安装或升级的,但是笔者还是偏爱Docker,这里就直接贴出Docker Compose的配置了,直接照着在NAS上启动即可。

version: '3.8'
services:
  lsky:
    image: halcyonazure/lsky-pro-docker:latest
    container_name: lsky
    restart: unless-stopped
    network_mode: bridge
    environment:
      - WEB_PORT=8089
    ports:
      - '5016:8089'
    volumes:
      - /share/Container/lsky/www:/var/www/html/

端口8089和路径/var/www/html/请映射出自己NAS上合适的端口和挂载路径,不要冲突即可。

Docker容器启动后,使用IP+端口打开Lsky,首次打开时需要设置数据库和管理员账号,数据库建议使用Mysql(需提前在Mysql中创建好数据库),管理员账号设置为自己的邮箱和熟悉的密码即可。

2.映射域名

Lsky启动并配置完成后,打开Cloudflare Tunnels,在其中增加一个Public Hostname,这个实际上也会在Cloudflare的域名DNS中增加一条特殊的解析。

以上操作需要你提前配置好Cloudflare的Tunnels,关于如何安装和配置,可参考笔者的这篇文章:使用Cloudfalre Tunnels实现内网穿透

NAS+Cloudflare+兰空Lsky

如上图,笔者将imgs.huluohu.com映射到局域网NAS上的5016端口上,5016是笔者部署Lsky使用的端口。

3.配置域名并上传图片

在上传图片之前,先打开Lsky的存储策略,将图片的访问地址改为上面映射好的域名。
NAS+Cloudflare+兰空Lsky

然后,就可以到图片上传页面随意上传图片了,可以看到上传完成后就会得到一个图片的访问链接,支持多种链接类型,选择一个你需要的即可。
NAS+Cloudflare+兰空Lsky

4.设置缓存

使用上面的图片链接打开图片,默认情况下是直接通过Cloudflare的隧道穿透到NAS并读取图片的,这样的话速度是非常慢的,笔者试了下大概要5秒以上才能完全打开(与家庭宽带上行速率有关),这谁能忍?所以为了加快访问图片的速度,一定要配置好缓存才行,也就是Cloudflare的CDN。

进入域名的管理界面,打开缓存菜单,找到Cache Rules,新增一条规则,填写匹配域名和URI,并设置边缘TTL,笔者直接设置为1年,你可以按照自己的需求设置,最少为2小时;最后记得点击部署按钮,完成上线。

NAS+Cloudflare+兰空Lsky
NAS+Cloudflare+兰空Lsky

部署完以后,再打开图片,除了首次打开速度较慢外,其他情况下基本上都是秒开,速度完全不输商业CDN。

总结

以上就是笔者的实操过程,毫无保留。目前笔者已经在尝试将新的图片使用Lsky存储,相关的工具链也能很好的支持,无论是日常使用效率还是图片访问体验,都没有明显拉胯,对笔者个人来说完全够用了。当然qiniu还会暂时保留,毕竟上面保存了不少历史图片,一时半会还不能放任不管,但是CDN费用预计不会继续上涨了。如果你觉这个方案还不错,欢迎留言讨论。

原创不易,如果觉得此文对你有帮助,不妨点赞+收藏+关注,你的鼓励是我持续创作的动力!

高等精灵实验室

原创文章,作者:诺多,如若转载,请注明出处:https://www.huluohu.com/posts/524/

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
一代经典终落幕:洛雪播放器宣布关停
上一篇 2023年10月23日 08:32
DashPlayer:一款立志考上英语八级的学霸播放器
下一篇 2023年10月23日 18:24

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(2条)