更优雅的让 Halo 支持 webp 图片输出

本文 首发于 Anyeの小站

灵感来源

Halo官网的一篇博文:优雅的让 Halo 支持 webp 图片输出

为什么要引入 Webp ?

这里引用原博文的内容:

Webp 是什么

WebP的有损压缩算法是基于VP8视频格式的帧内编码[17],并以RIFF作为容器格式。[2]
因此,它是一个具有八位色彩深度和以1:2的比例进行色度子采样的亮度-色度模型(YCbCr 4:2:0)的基于块的转换方案。[18]
不含内容的情况下,RIFF容器要求只需20字节的开销,依然能保存额外的 元数据(metadata)。[2]
WebP图像的边长限制为16383像素。

在 WebP 的官网中,我们可以发现 Google 是这样宣传 WebP 的:

WebP lossless images are 26% smaller in size compared to PNGs. WebP
lossy images are 25-34% smaller than comparable JPEG images at
equivalent SSIM quality index.

简单来说,WebP 图片格式的存在,让我们在 WebP 上展示的图片体积可以有较大幅度的缩小,也就带来了加载性能的提升。(摘自 https://nova.moe/re-introduce-webp-server)

为什么要改进原方法?

首先我曾很长一段时间使用的是原博文的使用的方法,其稳定性及易用性十分不错,但随着 1panel 的大面积使用,我们可以发现:若将其适配 1penal的使用逻辑,基于容器来管理和部署应用,最小漏洞暴露面,提供防火墙和日志审计等功能,是否会更加易用?

怎么做?

自1Panel v1.5发布后,其支持了进程守护管理,我也尝试过直接将进程守护直接移入1panel中,工作也相当稳定,但在翻看 文档 后,我发现使用docker部署也是很不错的选择。

创建编排模板

在这里插入图片描述

在1panel中找到容器-编排模板,点击创建编排模板名称随意填写~~(自己得知道是啥)~~,编辑框填写如下:

version: '3'

services:
  webp:
    image: webpsh/webp-server-go
    # image: ghcr.io/webp-sh/webp_server_go
    restart: always
    environment:
      - MALLOC_ARENA_MAX=1
      # - LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2
      # - LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4.5.6
    volumes:
      - /opt/1panel/apps/halo/halo/data/attachments:/opt/pics # 上传图片目录,此处为1panel部署的halo的上传目录
      - /opt/1panel/apps/halo/halo/data/attachments/upload:/opt/exhaust # 缓存目录,此处为1panel部署的halo的上传目录
      - ./config.json:/etc/config.json
    ports:
      -  127.0.0.1:3333:3333
    deploy:
      resources:
        limits:
          memory: 400M
    memswap_limit: 400M

确认保存。

创建编排

容器-编排中,点击创建编排,来源选择编排模板,按需填写文件夹,模板选择刚才创建好的webp模板。

点击确认,创建容器,至此webp部署完毕。

添加反向代理

在你所创建的Halo网站中,点击网站设置,找到反向代理创建反向代理

名称按需填写,我这里填写webp-img

匹配规则默认^~

前端请求路径填写/upload/

后端代理地址填写http://127.0.0.1:3333

后端域名默认$host

确认保存。

测试

打开浏览器开发者工具调试页面,观察类型列,可以发现开启前后图片格式发生了变化,图片的大小也远远降低。

未使用webp
在这里插入图片描述

使用webp
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Anyexyz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值