Вся магия сводится к добавлению:
location = /webapp {
return 301 /webapp/;
}
Спасибо, Валентин! Чет как-то об этой "магии" я не подумал.) Обязательно попробуем.
мы вот так делаем
root /var/www/webapps/nginx-static;
location /webapp/ {
try_files $uri $uri/ @application-handle;
}
location @application-handle {
include my-site/proxy_pass_params.conf;
proxy_pass http://app_upstream;
}
1) в try_files пишем $uri и $uri/
2) root-у нечего делать в location-е
3) include лучше делать в самую первую очередь, чтобы переопределенные
параметры (если они будут) не перетерлись include-овыми
и Вам, Илья, Спасибо. Но - увы: если в try_files указать $uri и $uri/, то на запрос /webapp/ будет прилетать 403. Пробовали..
По поводу root'a в location'е - тоже не тот случай: локейшн не один, равно как и приложение не единственное, и прописывать рут на уровне server'a нет возможности. А делать отдельную секцию server'a для каждого приложения.. ну не знаю, не знаю - что-то меня тут коробит:)
Что же касается инклюдов - учту, спасибо. Хотя у меня есть некоторые сомнения, что эти параметры унаследуются при проксировании, если определить их до.. впрочем, это легко проверить.
Всем спасибо за помощь!