diretiva nginx map não funciona com máscaras de sub-rede

1

Existe algo especial necessário para corresponder sub-redes no nginx ao usar map ? Eu tenho a configuração abaixo no bloco http {} . O IP do cliente é 10.0.3.1. Se eu remover a entrada 10.0.3.1 , sempre retornará deny em vez de corresponder à sub-rede 10.0.3.0/24. Existe um módulo nginx necessário que eu estou ausente ou algo assim?

Eu estou baseando essa configuração em alguns artigos do blog, mas não consigo encontrar nenhuma documentação oficial para dizer que essa notação é suportada.

map $remote_addr $allowed {
     10.0.3.1 allow;
     10.0.2.0/24 allow;
     10.0.3.0/24 allow;
     default deny;
}
    
por Flo Woo 07.09.2016 / 09:41

1 resposta

1

A diretiva map mapeia strings, portanto, é possível representar 10.0.3.0/24 como uma expressão regular e continuar usando a diretiva map . Mas você já considerou a diretiva geo que suporta a sintaxe do endereço IP?

geo $allowed {
 10.0.3.1 allow;
 10.0.2.0/24 allow;
 10.0.3.0/24 allow;
 default deny;
}

Veja este documento para detalhes.

    
por 07.09.2016 / 10:39