Diretivas que aceitam Expressões Regulares
Módulo | Diretiva | Match |
---|---|---|
HTTP Core | location ~ ER { … } | n |
location ~* ER { … } | i | |
server_name ~ ER; | i | |
HTTP FastCGI | fastcgi_split_path_info ER; | n |
HTTP Gzip | gzip_disable "ER"; | i |
HTTP Map | map … { …; ~ER 1; } | n |
map … { …; ~*ER 1; } | i | |
HTTP Proxy | proxy_cookie_domain ~ER texto; | i |
proxy_cookie_path ~ER texto; | n | |
proxy_cookie_path ~*ER texto; | i | |
proxy_redirect ~ER texto; | n | |
proxy_redirect ~*ER texto; | i | |
HTTP Referer | valid_referers ~ER; | i |
HTTP Rewrite | if ($var ~ ER) { … } | n |
if ($var ~* ER) { … } | i | |
if ($var !~ ER) { … } | ! | |
if ($var !~* ER) { … } | !i | |
rewrite ER texto; | n | |
HTTP SSI | <!--# if expr="$var = /ER/" --> | n |
<!--# if expr="$var != /ER/" --> | ! | |
HTTP Upstream | match nome { campo ~ ER; } | n |
match nome { campo !~ ER; } | ! | |
Stream Upstream | match nome { expect ~ ER; } | n |
match nome { expect ~* ER; } | i | |
Legenda: (n)ormal, (i)gnorecase, (!)negado |
Dicas
- O Nginx usa PCRE.
- Sempre use aspas para proteger a regex.
- Casamentos parciais são sempre válidos.
- As diretivas principais com suporte a regex são:
server_name
,location
,if
erewrite
. - Use grupos nomeados na regex para criar variáveis que podem ser utilizadas em outras diretivas.
Links
Server names Artigo que demostra os tipos de valores que podem ser usados na diretiva
server_name
, e como eles são processados. É importante entender bem as regras de precedência entre casamentos exatos, com asterisco e com expressões regulares.How nginx processes a request Artigo resumido que explica todos os passos que o Nginx faz ao receber uma requisição. É importante entender bem as regras de precedência entre casamentos exatos, de prefixo e com expressões regulares.
Understanding Nginx Server and Location Block Selection Algorithms Mesma proposta do artigo anterior, porém este é um guia completo, muito bem escrito, que explica em detalhes o funcionamento do Nginx ao processar uma requisição. Bom para entender como funciona o algoritmo, e assim poder escrever os blocos
server
elocation
com confiança.Converting rewrite rules Guia rápido com algumas dicas de como converter para o Nginx as regras do
mod_rewrite
do Apache.