[服务已经成功部署上,但没有转换成功。可能是配置哪里没有配置正确,文章就不删除了,留个记录。]
使用开源工具WebP Server Go
使用自定义配置启动容器
简单说明
确保您已安装 Docker 和 docker-compose。如果您希望使用自定义的 config.json配置文件,然后将其挂载到容器内的 /etc/config.json路径下。创建一个目录,并在其中创建 docker-compose.yml文件,示例如下:
version: '3'
services:
webp:
image: webpsh/webp-server-go
# 也可以使用: ghcr.io/webp-sh/webp_server_go
restart: always
volumes:
- ./path/to/pics:/opt/pics
- ./path/to/exhaust:/opt/exhaust
- ./path/to/metadata:/opt/metadata
- ./config.json:/etc/config.json
ports:
- 127.0.0.1:3333:3333假设您的网站和图片遵循以下路径模式:
那么:
./path/to/pics应改为您本地存放图片的目录,例如/opt/halo/halo2/attachments/。./exhaust是输出图片的缓存文件夹,默认会放在与docker-compose.yml文件同级的exhaust目录下。如果您希望将缓存图片保存在其他路径,可以将./exhaust改为/opt/halo/halo2/attachments/exhaust。./metadata是图片元数据的缓存文件夹,默认会放在与docker-compose.yml文件同级的metadata目录下。
正式开始部署适合用于我自己网站情况的WebP Server Go
创建项目目录:
mkdir - p /opt/halo/halo2/attachments/exhaust
mkdir -p /opt/webp-go
cd /opt/webp-go
vi config.jsonconfig.json文件内容如下:
{
"HOST": "127.0.0.1",
"PORT": "3333",
"QUALITY": "100",
"IMG_PATH": "/opt/halo/halo2/attachments",
"EXHAUST_PATH": "/opt/halo/halo2/attachments/exhaust",
"ALLOWED_TYPES": ["*"],
"CONVERT_TYPES":["webp"]
}最后适合用于我自己halo的docker-compose.yml文件内容如下:
vi docker-compose.ymlversion: '3'
services:
webp:
image: webpsh/webp-server-go
# 也可以使用: ghcr.io/webp-sh/webp_server_go
restart: always
volumes:
- /opt/halo/halo2/attachments:/opt/pics
- /opt/halo/halo2/attachments/exhaust:/opt/exhaust
- ./metadata:/opt/metadata
- ./config.json:/etc/config.json
ports:
- 127.0.0.1:3333:3333使用以下命令启动容器:
docker-compose up -d现在服务器应运行在 127.0.0.1:3333。访问 http://127.0.0.1:3333/upload/wx.jpg将会看到 /opt/halo/halo2/attachments/upload/wx.jpg的优化版本。
修改Nginx全局配置文件
修改 nginx.conf
vi /etc/nginx/nginx.conf在 配置文件的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';
}重载 Nginx 配置:
# 检查配置文件是否有问题
nginx -t
nginx -s reload这样您的 WebP 服务器就可以实时转换图片了!