Como Tim ajudou você com comentários, estava faltando uma barra no final /
no bloco localização .
Trecho da Documentação oficial do NGINX :
If a location is defined by a prefix string that ends with the slash character, and requests are processed by one of proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, or memcached_pass, then the special processing is performed. In response to a request with URI equal to this string, but without the trailing slash, a permanent redirect with the code 301 will be returned to the requested URI with the slash appended. If this is not desired, an exact match of the URI and location could be defined like this:
Portanto, estes dois não são iguais neste caso:
location /api/ {
...
}
IS NOT EQUAL WITH
location /api {
...
}
Mas se você quiser evitar esses erros nos casos em que precisar corresponder yourDomain / api ou yourDomain / api / como strings completas, use o seguinte regex correspondência:
location ~ ^/api/?$ {
...
}
O símbolo til ~
habilitará a correspondência de expressão regular e /?
estará permitindo símbolos de /
de uma barra ou zero antes do final da entrada.