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.