webp-server 是什么

这是一个能将 jpg,jpeg,png,bmp 图片格式转换为 webp 格式的图片压缩工具,webp格式的图片在同等图片大小的基础上减少80%(这个可以自己修改),而且不改变图片的超链接。

操作

下载工具包

官方最新版传送门

注意:这个工具包是二进制文件,别下载错了。

这里是我目前下载的工具包版本:webp-server-go-0.3.2

下载到本地

配置

这里我们借助宝塔工具来完成,用宝塔面板你会发现能简化繁琐的步骤。

首先在宝塔面板文件/opt/目录下新建一个webps目录

image.png

将工具包放到webps目录下,并且把名字改为webp-server
image.png

给这个工具包执行权限,右击权限,选中执行
image.png

linux 命令

chmod +x webp-server

在该目录下,新建一个config.json的配置文件
image.png

双击打开,将下面配置信息写入

{
        "HOST": "127.0.0.1",
        "PORT": "3333",
        "QUALITY": "80",
        "IMG_PATH": "/home/halo/.halo",
        "EXHAUST_PATH": "/home/halo/.halo",
        "ALLOWED_TYPES": ["jpg","png","jpeg"]
}

linux 命令

vim config.json

i:编辑模式
esc:末行模式
::命令模式
:wq:保存退出
image.png

HOST:一般不修改。
PORT:webp_server_go 的运行端口。
QUALITY:转换质量,默认为 80%。
IMG_PATH:固定格式,/ 运行 Halo 的用户名 /.halo
EXHAUST_PATH:固定格式,/ 运行 Halo 的用户名 /.halo
ALLOWED_TYPES:需要转换的格式

这里用到了安全组3333端口,没有放行到服务器商那儿放行,宝塔面板安全选项也要放行,如果宝塔装了防火墙还要看看防火墙有没有放行
image.png

配置webp-server的服务

在宝塔文件/etc/systemd/system/目录下创建webps.service文件
image.png

linux 命令

touch 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

注意:ExecStart=这里对应的是程序路径和配置文件路径,根据你的路径来。

开启webp-server的服务

在宝塔终端依次输入

systemctl daemon-reload		#重新加载修改过的配置文件
systemctl enable webps.service	#开机自启
systemctl start webps.service	#启动
systemctl status webps.service	#查看服务状态(是否启动)

ctrl+insert 在终端粘贴
ctrl+insert 在终端复制
systemctl stop webps.service #停止
systemctl restart webps.service #重启
systemctl disable webps.service #关闭开机自启

image.png
启动成功

配置 nginx 反向代理

在网站域名配置文件server节点下写入配置信息

location ^~ /upload/ {
        proxy_pass http://127.0.0.1:3333;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_hide_header X-Powered-By;
        proxy_set_header HOST $http_host;
        add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
}

image.png

配置好后,重新载入或重启下 nginx
image.png

实际效果

这张图片原来是230kb,被压缩到209kb,图片越大压缩越明显
image.png

参考

结束

文章中如有错误,请指正,转载请保留作者信息。

如果这篇文章对你有帮助可以请博主喝杯水。

Q.E.D.