У меня есть веб-приложение .Net Core (MVC 6), работающее на Linux-машине через Kestrel, с NGINX, служащим прокси-сервером из порта 80 -> 5000 К сожалению, мне не разрешено использовать маршрут по умолчанию в другое приложение имеет приоритет, оба должны работать через порт 80, то есть запросы пересылаются, как:Маршрутизация приложения ASP.NET MVC с прокси-сервером NGINX
127.0.0.1 -> другое приложение
127.0.0.1/conf -> мое приложение
И в конфигурационном файле NGINX он определяется как:
location /conf {
proxy_pass http://127.0.0.1:5000;
proxy_cache_bypass $http_upgrade;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
}
Дело в том, что если я запускаю приложение с использованием стандартного местоположения (location /), маршрутизация приложения MVC выполняется нормально. Но наличие/conf, добавленное к прокси, просто прерывает маршрутизацию MVC, потому что приложение продолжает возвращать маршруты, основанные на корневом расположении, без префикса/conf. Поэтому после того, как пользователь получает целевую страницу по умолчанию, все маршруты (ссылки, действия) по-прежнему указывают на адрес, например 127.0.0.1/Home/About, вместо 127.0.0.1/conf/Home/About - и сделать это еще хуже, эти ссылки (/ conf/Home/About) также не работают.
Любые предложения о том, как мне приступить к решению этой проблемы? Если какой-либо префикс маршрута должен быть указан в приложении MVC на общем уровне (в настоящее время он использует только маршрут по умолчанию) или существует какое-то решение на основе NGINX (что было бы более предпочтительным)? Я пробовал работать в полтора дня и не смог найти подобную ситуацию, поэтому я очень признателен за любой вклад в это.
Спасибо!