feat(middleware): COMPRESSION_ALGORITHMS 默认值改为 off
未设置环境变量时不再默认启用全部压缩算法,改为默认关闭。显式设为 "all" 或具体算法组合仍可按需开启。 - src/middleware.rs: fallback 由 "all" 改为 "off",同步更新文档注释 与默认值测试(compression_default_env_is_all → _is_off) - .env.example: 示例值与说明同步更新
This commit is contained in:
parent
593c0322bc
commit
5b6cb7d796
@ -89,9 +89,10 @@ SSR_CACHE_SECS=3600
|
|||||||
|
|
||||||
# HTTP 响应压缩算法。逗号分隔,大小写不敏感。
|
# HTTP 响应压缩算法。逗号分隔,大小写不敏感。
|
||||||
# 支持:gzip、brotli(可简写为 br)、deflate、zstd。
|
# 支持:gzip、brotli(可简写为 br)、deflate、zstd。
|
||||||
# 示例值(四项全开)等价于 "all",也是不设环境变量时的默认。
|
# 默认关闭压缩(不设环境变量时等同 "off")。
|
||||||
|
# 设为 "all" 启用全部算法,或按需组合,例如 "gzip, brotli, zstd"。
|
||||||
# 用 "none" 或 "off" 关闭压缩。
|
# 用 "none" 或 "off" 关闭压缩。
|
||||||
COMPRESSION_ALGORITHMS=gzip,brotli,deflate,zstd
|
COMPRESSION_ALGORITHMS=off
|
||||||
|
|
||||||
# ─────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────
|
||||||
# 图片响应缓存头(硬编码默认值,非环境变量)
|
# 图片响应缓存头(硬编码默认值,非环境变量)
|
||||||
|
|||||||
@ -78,7 +78,8 @@ pub(crate) fn parse_compression_algorithms(env: &str) -> Option<CompressionAlgor
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// 根据 COMPRESSION_ALGORITHMS 环境变量构造 CompressionLayer。
|
/// 根据 COMPRESSION_ALGORITHMS 环境变量构造 CompressionLayer。
|
||||||
/// 未设置或设置为 "all" 时启用全部算法;设置为 ""、"none" 或 "off" 时禁用。
|
/// 默认(未设置时)关闭压缩;显式设为 "all" 启用全部算法,设为 "gzip,brotli,..."
|
||||||
|
/// 按需选择;设为 ""、"none" 或 "off" 等价于不启用。
|
||||||
///
|
///
|
||||||
/// CompressionLayer 使用 tower-http 的 `DefaultPredicate`,开箱即用即:
|
/// CompressionLayer 使用 tower-http 的 `DefaultPredicate`,开箱即用即:
|
||||||
/// - 跳过 `image/*` content-type(WebP/PNG/JPEG/GIF 等已是压缩格式,再压浪费 CPU,
|
/// - 跳过 `image/*` content-type(WebP/PNG/JPEG/GIF 等已是压缩格式,再压浪费 CPU,
|
||||||
@ -91,7 +92,7 @@ pub(crate) fn parse_compression_algorithms(env: &str) -> Option<CompressionAlgor
|
|||||||
pub(crate) fn compression_layer_from_env() -> Option<tower_http::compression::CompressionLayer> {
|
pub(crate) fn compression_layer_from_env() -> Option<tower_http::compression::CompressionLayer> {
|
||||||
use tower_http::compression::CompressionLayer;
|
use tower_http::compression::CompressionLayer;
|
||||||
|
|
||||||
let env = std::env::var("COMPRESSION_ALGORITHMS").unwrap_or_else(|_| "all".to_string());
|
let env = std::env::var("COMPRESSION_ALGORITHMS").unwrap_or_else(|_| "off".to_string());
|
||||||
let algorithms = parse_compression_algorithms(&env)?;
|
let algorithms = parse_compression_algorithms(&env)?;
|
||||||
|
|
||||||
Some(
|
Some(
|
||||||
@ -303,12 +304,9 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn compression_default_env_is_all() {
|
fn compression_default_env_is_off() {
|
||||||
// 模拟未设置环境变量时的默认值
|
// 模拟未设置环境变量时的默认值
|
||||||
assert_eq!(
|
assert_eq!(parse_compression_algorithms("off"), None);
|
||||||
parse_compression_algorithms("all"),
|
|
||||||
Some(CompressionAlgorithms::all_enabled())
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user