Esses locais são diferentes. O primeiro corresponderá, /production
por exemplo, que pode não ser o que você esperava. Por isso, prefiro usar locais com uma barra à direita.
Observe também que:
Se um local é definido por uma sequência de prefixos que termina com o caractere de barra, e as solicitações são processadas por proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass ou memcached_pass, em resposta a uma solicitação com URI igual a essa sequência, mas sem o barra final, um redirecionamento permanente com o código 301 será retornado para o URI solicitado com a barra anexada.
Se você tem algo como:
location /product/ {
proxy_pass http://backend;
}
e vá para http://example.com/product
, o nginx o redirecionará automaticamente para http://example.com/product/
.
Mesmo se você não usar uma dessas diretivas acima, sempre poderá fazer o redirecionamento manualmente:
location = /product {
rewrite ^ /product/ permanent;
}
ou, se você não quiser redirecionar, poderá usar:
location = /product {
proxy_pass http://backend;
}
Não, eles não são os mesmos - você precisará usar uma barra final com uma expressão regular para corresponder a ambos, ou seja,
Consulte esta resposta relacionada para obter uma resposta mais detalhada sobre como corresponder ao URL inteiro.
fonte