set_encode_base64url
`set_encode_base64url` 指令将数据编码为 URL 安全的 Base64 格式。
NGINX Set-Misc module
·
httpserverlocationif in serverif in location
语法set_encode_base64url $input_variable [$output_variable];
默认值none
上下文http, server, location, if in server, if in location
参数1-2
说明
set_encode_base64url 指令属于 NGINX Set-Misc 模块,用于将任意数据转换为 URL 安全的 Base64 格式。该功能特别适合在 URL 或 HTTP 头中嵌入二进制数据,避免字符编码问题。该指令接受一个或两个参数:第一个是要编码的输入变量,第二个(可选)指定存放编码结果的输出变量。
使用 set_encode_base64url 时,其过程是对标准 Base64 编码进行调整,将 '+' 替换为 '-',将 '/' 替换为 '_'。该调整产生的 Base64 编码字符串可直接在 URL 中使用,无需进一步编码(例如 URL 编码)。在这种格式中,填充字符 '=' 也可以被省略。因此用户可以得到干净、适合 URL 的输出,可直接用于 Web 场景。这在生成用于 API、会话或其他需要安全传输二进制数据的 Web 应用的令牌或标识符时尤其有用。
该指令可在多个上下文中使用,包括 http、server 和 location,在 NGINX 配置的不同部分提供了应用灵活性。它可以与其他 NGINX 指令结合,对请求和响应进行复杂处理,使其成为 NGINX 模块集合中功能强大的工具。
配置示例
location /example {
set $data "example data";
set_encode_base64url $data $encoded_data;
}
# In this case, $encoded_data will hold the URL-safe Base64 encoded version of 'example data'.⚠
确保输入变量包含有效值以避免编码错误。
⚠
注意,输出变量将被覆盖;如果需要存储多个编码,请始终使用唯一的输出变量名。
⚠
如果未提供第二个输出变量,该指令将覆盖输入变量。