Set-Misc#
set-misc
模块通过添加对 URI 转义和反转义、JSON 引号处理以及各种编码和解码方法(HEX、MD5、SHA1、Base32、Base64)和其他操作的支持,扩展了重写模块的标准功能。
它允许解决以下任务:
URI 处理:转义和反转义 URI。
编码和解码:支持 HEX、MD5、SHA1、Base32、Base64。
附加功能:处理 JSON 引号和其他实用功能。
加载模块#
要使用该模块,必须在 main{}
的上下文中加载它。下面的示例还使用了 echo 模块中的指令:
load_module modules/ndk_http_module.so;
load_module modules/ngx_http_set_misc_module.so;
load_module modules/ngx_http_echo_module.so;
配置示例#
server {
listen 80;
server_name localhost;
location /ifempty {
set $a $arg_a;
set_if_empty $a 56;
echo "arg_a = '$arg_a'";
echo "a = '$a'";
}
location /unescape {
set_unescape_uri $a $arg_a;
set_escape_uri $b $a;
echo "arg_a = '$arg_a'";
echo "a = '$a'";
echo "b = '$b'";
}
location /base32 {
set_encode_base32 $a $arg_a;
set_decode_base32 $b $a;
echo "arg_a = '$arg_a'";
echo "a = '$a'";
echo "b = '$b'";
}
location /hex {
set_encode_hex $a $arg_a;
set_decode_hex $b $a;
echo "arg_a = '$arg_a'";
echo "a = '$a'";
echo "b = '$b'";
}
}
演示#
$ curl localhost/ifempty/?a=100
arg_a = '100'
a = '100'
$ curl localhost/ifempty
arg_a = ''
a = '56'
$ curl localhost/unescape/?a=Hello%20world!
arg_a = 'Hello%20world!'
a = 'Hello world!'
b = 'Hello%20world!'
$ curl localhost/base32/?a=abcde
arg_a = 'abcde'
a = 'c5h66p35'
b = 'abcde'
$ curl localhost/hex/?a=abcde
arg_a = 'abcde'
a = '6162636465'
b = 'abcde'
附加信息#
指令和源代码的完整描述可在以下网址找到: openresty/set-misc-nginx-module.