Creo que puede usar reescribir para eliminar la parte adicional de la URL. En su caso, creo que podría usar:
location /route/ {
rewrite ^/route/?(.*)$ /$1 break;
proxy_pass http://127.0.0.1:9000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Sin embargo, si su aplicación tiene enlaces internos, aún pueden apuntar a / abc / foo, y si hace esto, en su lugar, deben apuntar a / route / abc / foo para que la solicitud sin procesar llegue correctamente. Es mejor dejar la configuración de nginx como está y, en su lugar, configurar su aplicación para que se dé cuenta de que vive en un subdirectorio, si puede.
Sé que esta es una vieja pregunta, ¡pero fue el mejor éxito de Google para mí cuando estaba tratando de resolver el mismo problema!
/está bien documentado como la forma de eliminar el prefijo que aparece en la ubicación.