
自建图床-简单图床部署教程
前言
在将网站由Typecho迁移到Halo后,之前的图片链接全部无法使用;将原来的图片上传到Halo后,所有的文章都需要修改图片链接,这是非常麻烦的。于是想到了之前嫌麻烦没有使用的图床,并在这篇文章的启发下,开始了我自己图床的搭建:
我对图床的要求如下:
资源占用小
docker部署
能够实现图片压缩或格式转换(webp)
图片自动重命名
管理页面与图片直链域名分离,即不能通过图片直链的域名访问到图床后台
能够接入图片上传软件,如PicGo
经过查找,发现简单图床能够很好满足我的需求。
Docker部署
简单图床官方并没有提供Docker镜像,这里放一个使用较多的镜像:
https://hub.docker.com/r/ddsderek/easyimage
如果你熟悉Docker的部署,这里我就直接给出命令了:
Docker-cli
docker run -itd \
--name easyimage \
-p 8080:80 \
-e TZ=Asia/Shanghai \
-e PUID=1000 \
-e PGID=1000 \
-e DEBUG=false \
-v /root/data/docker_data/easyimage/config:/app/web/config \
-v /root/data/docker_data/easyimage/i:/app/web/i \
ddsderek/easyimage:latest
Docker-compose
version: '3.3'
services:
easyimage:
image: ddsderek/easyimage:latest
container_name: easyimage
ports:
- '8080:80'
environment:
- TZ=Asia/Shanghai
- PUID=1000
- PGID=1000
- DEBUG=false
volumes:
- '/root/data/docker_data/easyimage/config:/app/web/config'
- '/root/data/docker_data/easyimage/i:/app/web/i'
restart: unless-stopped
如果你不熟悉Docker的部署,那请参考这篇文章:
配置
反向代理
为了实现管理页面与图片直链域名分离的效果,需要对管理页面和图片直链分别设置反向代理。
此部分假设:
图床的本地访问页面为:
http://192.168.1.100:8080
图床的外部管理页面为:
https://console.easyimage.com
图床的直连URI:
https://image.easyimage.com/xxxx/xx/xxxxx.xxx
管理页面
为了能够进入图床后台,首先需要配置管理页面的反向代理。
以Lucky为例,首先创建一个监听443端口的Web服务规则,在其中新建子规则,配置如下图所示:
配置好SSL证书后,就能够通过https://console.easyimage.com
来访问后台页面了。
图片直链
在同样的Web服务规则中新建子规则,配置如下图所示:
与控制页面最主要的区别就是后端地址多了/i
,这是由于简单图床的默认上传链接格式为: https://i2.100024.xyz/i/2023/02/06/1w0b5z.webp
,其中/i/
是由上传设置->存储路径
设置的,你也可以对其修改(没必要)。
图床配置
初始配置
进入https://console.easyimage.com
,访问后台页面。初次进入后台会进行环境检查,出现以下页面:
点击下一步即可,这里会设置链接和管理员信息:
网站域名就是后台页面,填https://console.easyimage.com
。
图片链接域名填https://image.easyimage.com
。
注意:这里自动填写的网址为http
,如果你使用https
访问会出现资源无法加载的问题,请手动修改网址。
填好账号密码后点击开始安装。
安装结束后,就可以正常使用图床了。
其他配置
上述的配置仅仅是完成了图床的安装,但是还有其他一些安全、细节相关的设置需要更改。
隐藏存储路径
打开图床安全->隐藏/i/目录
,然后将图片域名绑定到/i/
目录。反向代理那部分,就是将图片域名绑定到了/i/
目录。
此时,如果直接访问https://image.easyimage.com
,那么就会出现下方的静态页面:
这样就能保证后台页面不被非法访问。而如果是图片直链,就可以正常访问。
其实我认为比较理想的实现是添加认证界面,未经过认证的仅能访问图片直链,直接访问后台会弹出认证界面,就像这个博客:
你可以直接访问其图床域名:
https://p.zhheo.com
会跳转到博主自建的HaoSafe认证页面,这部分我目前不知道实现方法。
图片格式
简单图床提供了图片格式转换功能,推荐将图片转换为webp格式,在画面无明显劣化的情况下,占用空间大幅减小。
注:仅对元素较为简单的图片生效,经笔者测试,如果图片存在大面积的虚化效果,webp会有明显劣化。因此不建议对网站的背景图等进行webp转换。
另外,下方还可以进行其他设置,我认为默认的单文件最大10M有点小,所以改成了30M,你可以自行决定修改与否。
接入PicGo
如果你已经使用后台页面上传过图片了,你就会发现很麻烦:不但要手动选择图片,并且上传后还要手动复制链接,更不要提剪切板中的截图了。
这时就需要一个图片上传软件了,我用的是PicGo。它支持直接上传剪切板图片、拖拽上传、悬浮窗置顶、上传后链接直接复制到剪切板。
更多的功能可以去官网查看:
接入方法简单图床文档中已有教程,我就不赘述了:
此外还有一个PicGo的分支——PicList,可以说是PicGo的上位替代了,更推荐使用:
PicList所提供的图片处理功能更加丰富自由,可以完美替代简单图床自带的图片处理。
总结
至此,图床的搭建就完成了,笔者认为此图床最大的两个问题一是没有删除的API,无法通过PicGo实现图片删除;二是没有图片的管理界面,只能通过文件管理删改图片。此外后台页面不美观也是一个小问题,不过一般也不使用。
以后如果还需要网站迁移,直接将文章转移即可,无需修改图片链接。
如果需要更改图床或换用OSS对象存储,只需要保证路径与现在图床相同,直接将直链域名解析到OSS即可,无需做大幅度的修改。
那么,已经有的图片咋办捏?一个个慢慢改吧~~~ 我懒,不改了