qual é a localização nginx ~ * e ~

15

Estou tentando entender o nginx um pouco melhor e tentando formar um regex em que cada URL que NÃO corresponde /api/postdataV1é roteada para um cluster diferente de servidores. Eu continuo vendo essas duas coisas em exemplos sem explicação

location ~ {some regex}

location ~* (some regex}

Minha primeira pergunta é o que são ~e ~*(acho que o ~justo significa que estou especificando uma regex?), Mas e ~*então?

O que eu acho que o que eu quero é isso. Isso seria correto?

location ~ ^/api/postdataV1$ {
    #matches to this route to where I want
}

location / {
    #This will be everything except /api/postdataV1 I think
}

Isso seria correto? mas e quanto a ~*... eu não entendo essa

obrigado Dean

Dean Hiller
fonte
sempre vale a pena dar uma olhada no wiki .
aquele cara de lá
1
Eu tinha examinado os documentos, mas simplesmente não encontrei os links corretos e acabei na página de documentação para "local", que realmente deveria ter essas informações, mas não encontrou. (O wiki, pelo que me lembro, me referiu à documentação como a mais atualizada).
precisa saber é o seguinte
eu google nginx location, primeiro hit é este :) mas devo admitir, é preciso se acostumar com a documentação nginx, esp. encontrar o material certo abaixo da seção de módulos.
aquele cara de lá
1
minha primeira página do google usando sua consulta de pesquisa foi exatamente o que eu li pela primeira vez ... wiki.nginx.org/HttpCoreModule, que no RED diz que o artigo está obsoleto, me levando a outra página (você precisa conhecer o Google para obter resultados diferentes com base em quem você é - se logado e em qual servidor você acaba acessando). Eu não recebi com a página fornecida abaixo em tudo que abalou usando google e ler em torno :( !!!
Dean Hiller

Respostas:

16

Conforme declarado na documentação do nginx , ~*regex é para correspondência que não diferencia maiúsculas de minúsculas e diferencia ~maiúsculas de minúsculas.

Sua sintaxe está correta, mas pode ser reescrita sem regex (o menor local fica na última correspondência de solicitações):

location /api/postdata {
}

location / {
}
Andrei Mikhaltsov
fonte
1
ah, legal ... sim, eu tentei pesquisar no Google ~ *, mas o google não indexa caracteres especiais muito bem (muito ruim o nginx não usou diretivas, pois eu provavelmente teria chegado exatamente nessa página)
Dean Hiller,
@DeanHiller Parece que o Google corrigiu o bug: D
Yarek T
Sua resposta pode não estar correta, pois /api/PostDataela não corresponderá sem #~*
Devy 22/11