Vamos ver sua linha de reescrita:
rewrite /tomcatapi/(.*) $1 break;
Você está pegando o bit entre colchetes (ou seja, tudo após /tomcatapi/
), que é atribuído a $1
e usando isso como o único conteúdo de seu URI reescrito.
No seu exemplo, não há nada após /tomcatapi/
, então a reescrita termina vazia, e é isso que o nginx está reclamando.
Se você alterar a regra de reescrita para
rewrite /tomcatapi/(.*) /$1 break;
você sempre terá pelo menos /
na saída de reescrita.