webp

'webp' 指令启用对 JPEG/PNG 图像的实时转换,将其转换为 WebP 格式以服务支持的客户端。

语法webp;
默认值none
上下文location
参数none

说明

'webp' 指令允许 NGINX 根据客户端的 Accept 头来以 WebP 格式提供图像。当客户端请求图像且 Accept 头包含 'image/webp' 时,该模块会触发对 JPEG 或 PNG 图像的实时转换。该过程通过调用 'cwebp' 工具来实现,'cwebp' 是一个将图像转换为 WebP 格式的命令行实用程序,因其更小的文件体积和高效的压缩而有优势。

当请求位于包含此指令的 location 的图像时,NGINX 会检查指定的 Accept 头。如果客户端支持 WebP,该模块会尝试为请求的 JPEG 或 PNG 文件创建新的 WebP 版本。它通过 fork 出一个新进程并使用相应的文件路径执行 'cwebp' 来完成该操作。转换成功后将把输出提供给客户端;如果转换失败,NGINX 则回退为提供原始图像格式,以确保客户端始终收到有效的图像响应。

在配置该指令时,必须包含 'cwebp' 工具的必要路径并确保相关图像文件具有充分的权限。同时也要考虑缓存策略,因为图像转换会引入延迟。实施缓存方案可以帮助减轻按需处理带来的性能影响。

配置示例

location ~ '\.jpg$' {
    webp;
}

确保 'webp' 脚本位于 '/etc/nginx/' 并具有可执行权限。

'cwebp' 工具必须正确安装并对 NGINX 可用。

在图像转换期间性能可能会受到影响;考虑采用缓存策略来缓解。

← 返回所有指令