У меня есть сайт http://example.com
с запущенным приложением, доступ к которому можно получить по адресу http://example.com/app1
. Приложение app1 находится за обратным прокси-сервером nginx, например:
location /app1/ {
proxy_pass http://localhost:8080/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
Добавление завершающей косой черты к полю proxy_pass
позволяет мне «удалить» часть /app1/ URL-адреса, по крайней мере, в отношении приложения. Таким образом, app1 считает, что получает запросы к корневому URL-адресу (например, у меня есть маршрут в app1, который находится на '/'
, а не '/app1'
).
Однако я бы хотел, чтобы nginx не учитывал регистр. Итак, перехожу ли я к http://example.com/App1
или http://example.com/APP1
, он все равно должен просто перенаправить запрос в app1, и удалить часть /app1/ URL-адреса.
Когда я пытаюсь использовать нечувствительные к регистру правила nginx, он не позволяет перенаправить остальную часть URI в app1.
location ~* /app1/ {
proxy_pass http://localhost:8080/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
Это дает мне ошибку конфигурации nginx.
Мои цели двояки:
- Сопоставьте
/app1/
без учета регистра - Удалите часть
/app1/
URL-адреса при «передаче» URL-адреса в приложение.
Я попытался переписать URL-адрес, но он не позволил мне добавить остальную часть URI в proxy_pass.
Любая помощь будет оценена по достоинству!