先创建个文件夹,用于存储 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 theIMG_PATH
section inconfig.json
. If you are serving
images athttps://example.com/pics/tsuki.jpg
and your files are at/var/www/image/pics/tsuki.jpg
, thenIMG_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
其中 WorkingDirectory
和 ExecStart
改成你自己的。
再启动服务:
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