set_random
`set_random` 指令根据指定参数生成随机字符串。
NGINX Set-Misc module
·
httpserverlocationif in serverif in location
语法set_random variable [length] [charset];
默认值none
上下文http, server, location, if in server, if in location
参数3
说明
set_random 指令属于 NGINX 的 Set-Misc 模块,允许用户在配置文件中直接生成随机字符串。该指令最多可接受三个参数:要设置的变量、随机字符串的可选长度,以及用于生成字符串的可选字符集。使用时,它会将指定变量替换为根据给定长度和字符集生成的随机值;如果省略这些参数,则使用默认行为。
默认情况下,如果未指定长度,set_random 指令会生成一个16个字符的随机字符串。如果未指定字符集,默认使用字母数字字符(包括大写字母、小写字母以及数字)。这使得 set_random 成为一个多用途的指令,可用于多种场景,例如为会话管理或缓存创建令牌、密码或唯一标识符等。还需要注意,该指令需要放在合适的上下文中使用,可根据所需作用域在 http、server、location 或 if 块中使用。
配置示例
location /generate-token {
set_random $token 32 'a-zA-Z0-9';
add_header X-Generated-Token $token;
}⚠
确保指定的长度不超过内部变量存储的限制。
⚠
使用自定义字符集需要正确的格式,以确保指定的是有效字符。