1panle+halo+webp-server-go

作者:waMoYu 发布时间: 2025-05-01 阅读量:71 评论数:0

一、情况介绍

发现多图文章的时候加载特别慢,通过F12查看网络发现是图片太大导致的,所以如果想提高访问速度,就只有想办法缩小图片大小了。

二、解决思路

最开始想的是搞个图床,用图床自带压缩来解决,看了以下halo中插件只支持兰空图床,搭建一个后发现halo无法一键替换文章图片链接,只有一个个手动修改,太麻烦了就放弃该方法了。

后续了解到了webp格式图片,发现有webp-server-go这玩意,直接网页搜索对应文章发现设置了都不行,因为部署环境不同,无法直接按照文章内容配置,所以采写了这篇文章。

三、部署方法

注意!该方法会导致gif无法加载,因为halo中文章默认显示的thumbnails里面的图,gif不会存在在里面,除非你手动复制过去!

先说下自身环境,底层系统位debian、debian上部署的1panel,通过1p的应用商店部署的halo。

查询webp-server-go官方文档,可以看到能docker部署,这里直接使用docker部署。

  1. 先打开1panel ---> 容器 ---> 编排,点击创建编排。

    image-bbQf.png

    文件夹输入webp或者其他名字,docer-compase直接把以下内容粘贴进去即可

    version: '3'
    
    services:
      webp:
        image: webpsh/webp-server-go
        # image: ghcr.io/webp-sh/webp_server_go
        restart: always
        volumes:
          - /opt/1panel/apps/halo/halo/data/attachments/thumbnails:/opt/pics/upload/thumbnails
          - ./exhaust:/opt/exhaust
          - ./metadata:/opt/metadata
          - ./config.json:/etc/config.json
        ports:
          -  127.0.0.1:3333:3333
  2. 创建好后,点击编排目录中的目录图标,进入webp文件目录。

    在这里面创建一个config.json文件,用于配置webp-server-go的一些配置,按照下方内容复制进去即可。

    {
      "HOST": "0.0.0.0",
      "PORT": "3333",
      "QUALITY": "80",
      "IMG_PATH": "/opt/pics",
      "EXHAUST_PATH": "/opt/exhaust",
      "IMG_MAP": {
      },
      "ALLOWED_TYPES": ["jpg", "png", "jpeg", "bmp", "svg", "heic", "nef", "webp"],
      "CONVERT_TYPES": ["webp"],
      "STRIP_METADATA": true,
      "ENABLE_AVIF": false,
      "ENABLE_EXTRA_PARAMS": false,
      "EXTRA_PARAMS_CROP_INTERESTING": "InterestingAttention",
      "READ_BUFFER_SIZE": 4096,
      "CONCURRENCY": 262144,
      "DISABLE_KEEPALIVE": false,
      "CACHE_TTL": 259200,
      "MAX_CACHE_SIZE": 0
    }

    按照上面的配置文件,webp服务会禁止转换gif文件(如果是低配云服务器(2c2g这种)建议关闭,不然直接云服务器直接卡死了)。

  3. 在打开:网站设置 ---> 找到halo的站点 ---> 网站设置 ---> 反向代理。

    创建一个新的反向代理,向下图一样配置即可

四、效果展示

五、其他

提前转换图片,需要进入容器内执行(如果挂载了json配置文件,需要进入到配置文件所在路径执行)

# 1)进入配置文件所在路径
cd /etc
# 执行以下命令提前转换图片(使用2线程)
webp-server -prefetch-foreground -jobs=2


评论