Re: rewrite в именованный location
Maxim Dounin
mdounin на mdounin.ru
Пт Апр 14 17:09:00 UTC 2017
Hello!
On Fri, Apr 14, 2017 at 07:10:08PM +0300, Дмитрий Мурзин wrote:
> Спасибо за ответ!
> Хороший доклад, многое проясняет.
>
> Если можно, спрошу про ещё одну конфигурацию:
> location @proxy1 {
> ...много строк настройки первого прокси...
> }
> location /png {
> error_page 418 =@proxy1; return 418;
> }
> location /pic {
> error_page 418 =@proxy1; return 418;
> }
>
> location @proxy2 {
> ...много других строк настройки второго прокси...
> }
> location /some_location {
> error_page 418 =@proxy2; return 418;
> }
> location /some_another_location {
> error_page 418 =@proxy2; return 418;
> }
>
> Правда же, что если директивы настроек @proxy1 и @proxy2 разные,
> то не получится как в предыдущей конфигурации вынести на верхний уровень общую,
> (то есть придётся использовать некрасивый хак с error_page,
> либо copypaste, как советуют в докладе)?
Конкретно в приведённой конфигурации - можно воспользоваться тем,
что требующие разных конфигураций location'ы имеют общие префиксы,
и сделать конфигурацию с вложенными location'ами:
location /p {
... first proxy settings ...
location /png {
proxy_pass ...
}
location /pic {
proxy_pass ...
}
}
location /some_ {
... second proxy settings ...
location /some_location {
proxy_pass ...
}
location /some_another_location {
proxy_pass ...
}
}
В общем случае так, очевидно, сделать не получится. Наиболее
общее решение - копировать конфигурацию. В случае, если
копировать очень не хочется - можно воспользоваться директивой
include.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru