Я вважаю, що ви можете скористатися перезаписати, щоб видалити зайву частину URL-адреси. У вашому випадку я думаю, ви могли б використовувати:
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;
}
Однак якщо у вашої програми є внутрішні посилання, вони все одно можуть вказувати на / abc / foo, і якщо ви це зробите, вони замість цього повинні вказувати на / route / abc / foo, щоб вихідний запит надходив правильно. Можливо, вам буде краще залишити конфігурацію nginx такою, якою вона є, і замість цього налаштувати додаток так, щоб він знав, що він живе у підкаталозі, якщо зможете.
Я знаю, що це давнє запитання, але це був найкращий хіт Google для мене, коли я намагався вирішити ту саму проблему!
/
добре задокументовано як спосіб видалення префіксу, вказаного в цьому місці.