Set-Misc#
O módulo set-misc
estende a funcionalidade padrão do módulo Rewrite adicionando suporte para escape e unescape de URI, manipulação de aspas JSON, bem como vários métodos de codificação e decodificação (HEX, MD5, SHA1, Base32, Base64) e outras operações.
Ele permite resolver as seguintes tarefas:
Processamento de URI: escape e unescape de URIs.
Codificação e Decodificação: suporte para HEX, MD5, SHA1, Base32, Base64.
Funções Adicionais: trabalho com aspas JSON e outros recursos utilitários.
Instalação#
Para instalar o módulo, use um dos seguintes pacotes:
Angie:
angie-module-set-misc
Angie PRO:
angie-pro-module-set-misc
Carregando o Módulo#
Para trabalhar com o módulo, ele deve ser carregado no contexto de main{}
. O exemplo abaixo também usa diretivas do módulo 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;
Exemplo de Configuração#
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'";
}
}
Demonstração#
$ 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'
Informações Adicionais#
A descrição completa das diretivas e código-fonte está disponível em: openresty/set-misc-nginx-module.