编程技术分享平台

网站首页 > 技术教程 正文

静态图片网站自动转Jpg,Png图像为Webp

xnh888 2024-09-22 17:07:19 技术教程 25 ℃ 0 评论

我有一个静态的图片站点,里面有大量图片,而且图片都比较大(5M到20M),琢磨着怎么减少图片大小,加快响应速度,减少流量占用。

考虑过以下办法:

1 让CDN压缩图像

我用的是 Cloudflare ,了解了一下,需要开通Pro用户,一个月要20美元,可以将图像转为Webp。

2 上传图片前先压缩好

这个不用钱,就是麻烦多了。需要自己压缩好。这样更新图像挺麻烦的。好处是服务器硬盘空间占用少。

3 Nginx上写Lua脚本干这个事

对Nginx的Lua编程不熟悉,而且看了看教程,好像不是那么方便。

4 自己写个网站,自己处理图片请求,在请求时转换,或者直接返回上次转换好的。

这个还是满足我的需求的,只是不太想写这样的,先网上找找。


还真的有这样的现成的,而且是用 Go写的,好部署。

项目在 https://github.com/webp-sh/webp_server_go

处理也方便:

1 建一个目录来放程序

cd /data/
mkdir webp
wget https://github.com/webp-sh/webp_server_go/releases/download/0.3.2/webp-server-linux-amd64
chmod +x webp-server-linux-amd64

2 创建配置运行文件

{
	"HOST": "127.0.0.1",
	"PORT": "3333",
	"QUALITY": "80",   
	"IMG_PATH": "/data/sources",
	"EXHAUST_PATH": "/data/image_webp",
	"ALLOWED_TYPES": ["jpg","png","jpeg"]
}

QUALITY : 压缩质量

IMG_PATH: 图像源路径

EXHAUST_PATH: 压缩后的图像的存储路径


3 创建Supervisor守护配置

[program:webp]        
directory=/data/webp    
command=/data/webp/webp-server-linux-amd64  --config=/data/webp/config.json

autostart=true         
autorestart=true       
startsecs=10           

4 启动

supervisorctl update
supervisorctl start webp

5 将NGINX的静态网站改为反向代理

结束。

再次在浏览器里访问图像,发现图像被压缩了,我这里实测一个10M的图像压缩为1M大小了,然后图像的文件名没变,但内容类型已成为webp了。

content-length: 1055446
content-type: image/webp

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表