为 Typecho 适配自适应 WebP 输出

先创建个文件夹,用于存储 webp-server 和配置。

mkdir /usr/local/webp-server
cd /usr/local/webp-server

下载 webp-server 主程序。

wget https://github.com/webp-sh/webp_server_go/releases/download/0.1.0/webp-server-linux-amd64 -O webp-server

给权限。

chmod +x webp-server

创建配置文件。

nano config.json

内容如下:

{
        "HOST": "127.0.0.1",
        "PORT": "9327",
        "QUALITY": "80",
        "IMG_PATH": "/home/wwwroot/blog/usr/uploads",
        "EXHAUST_PATH": "/home/wwwroot/blog/usr/webp_cache",
        "ALLOWED_TYPES": ["jpg","png","jpeg"]
}

解释一下:

  • HOST: server 的监听地址,一般不改。
  • PORT:监听端口。
  • QUALITY:WebP 的转换品质,建议设置在80~85左右。
  • IMG_PATH:直接引用 GitHub 项目上的原文:

Regarding the IMG_PATH section in config.json. If you are serving
images at https://example.com/pics/tsuki.jpg and your files are at
/var/www/image/pics/tsuki.jpg, then IMG_PATH shall be /var/www/image.

  • EXHAUST_PATH:缓存目录。
  • ALLOWED_TYPES:转换成 WebP 的图片类型。
    再创建服务。
nano /etc/systemd/system/webps.service

内容:

[Unit]
Description=WebP Server
Documentation=https://github.com/n0vad3v/webp_server_go
After=nginx.target

[Service]
Type=simple
StandardError=journal
AmbientCapabilities=CAP_NET_BIND_SERVICE
WorkingDirectory=/opt/webps
ExecStart=/opt/webps/webp-server --config /opt/webps/config.json
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=3s


[Install]
WantedBy=multi-user.target

其中 WorkingDirectoryExecStart 改成你自己的。
再启动服务:

systemctl daemon-reload
systemctl enable webps.service
systemctl start webps.service

再改 Nginx 配置文件,在 server 段中添加:

location ~ /usr/webp_cache {deny all;}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            proxy_pass http://127.0.0.1:9327;
        }

最后重启 nginx,Done!

最后是几张测试图片。

TEST PURPOSE ONLY

onpc.JPG
Windows NT 4.0 Workstation-2020-03-08-11-38-55.png
Windows NT 4.0 Workstation-2020-03-08-11-39-43.png

最后修改:2020 年 03 月 09 日 07 : 47 PM

发表评论