Halo博客图片批量压缩

博客中有些图片过大,使用定时脚本批量压缩,博客中主要的图片格式为png与jpg,博客图片部署在Linux ubuntu上面,安装jpegoptim,optipng后,编写脚本压缩图片即可。

jpegoptim-无损压缩JPEG图像

# Debian系(Debian, Ubuntu)
sudo apt-get install jpegoptim
 
#RedHat系(RHEL, CentOS, Fedora)
sudo yum install epel-release
sudo  dnf install epel-release    [On Fedora 22+ versions]
# 执行完上面在执行下面命令安装
sudo yum install jpegoptim
sudo dnf install jpegoptim    [On Fedora 22+ versions]

optipng-无损压缩PNG图像

# Debian系(Debian, Ubuntu)
sudo apt-get install optipng
 
#RedHat系(RHEL, CentOS, Fedora)
sudo yum install epel-release
sudo  dnf install epel-release    [On Fedora 22+ versions]
# 执行完上面在执行下面命令安装
sudo yum install optipng
sudo dnf install optipng    [On Fedora 22+ versions]

压缩halo博客上传的图片

找到halo的图片上传目录,下面命令找出该目录下png,jpg后缀的文件,图片体积大于100KB,进行压缩覆盖原图片。

find upload -type f -name "*.jpg" -size +100k|xargs jpegoptim
find upload -type f -name "*.png" -size +100k|xargs optipng

使用webp优化

Google的WebP 图片格式,可以让我们在 WebP 上展示的图片体积可以有较大幅度的缩小,也就带来了加载性能的提升。这里使用 webp-sh 组织最新开源的 webp_server_go 了,它的大概原理就是:当我们请求一张图片的时候使用 web 代理工具转发到 webp_server_go 应用进行处理,处理完成之后返回 webp 格式的图片,并且会保留处理后的图片以供后面的访问。

部署webp服务

webp_server_go本站下载地址:http://www.codehome.vip:5244/%E7%83%AD%E9%97%A8%E8%B5%84%E6%BA%90/%E5%8D%9A%E5%AE%A2 配置文件

{
        "HOST": "127.0.0.1",
        "PORT": "3333",
        "QUALITY": "80",
        "IMG_PATH":"/home/dsys/app/halo/halo2/attachments",
        "ALLOWED_TYPES": ["jpg","png","jpeg"]
}

开机自启

[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=/home/dsys/app/webp
ExecStart=/home/dsys/app/webp/webp-server --config /home/dsys/app/webp/config.json
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=3s
User=root

[Install]
WantedBy=multi-user.target

nginx配置halo图片代理

 location ^~/upload/ {
            proxy_pass http://localhost: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';

        }

u

文章作者: 编程之家
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 编程之家
Linux 图片压缩 jpegoptim optipng
喜欢就支持一下吧