Você deve verificar seu log de erros para ver o que realmente acontece. Essa configuração funciona para mim:
map $uri $route {
/route_a /path/to/a.html;
/route_b /path/to/b.html;
}
server {
root /;
listen 8080;
server_name localhost;
location / {
rewrite ^ $route break;
}
}
É claro que /path/to/[ab].html deve existir.
Talvez você simplesmente esqueça de definir o caminho certo usando a diretiva "root"?