Привет! Я тут пытаюсь навести красоту в одном конфиге Nginx-а и что-то пока совсем беда :-(
Формулировка, правда, изначально довольно извращенная: есть Nginx, по-умолчанию проксирует запрос в локально работающую node. Но если в запросе есть заголовок X-Some-Header, то запрос нужно спроксировать на другой сервер по https. Второе но: если этот прокси недоступен/не ответил/просто 500-тит, то сделать fallback опять на локальную node. первая мысль была: map $http_x_some_header $use_backend { "" http://localhost:7070; default https://remote_upstream; } upstream remote_upstream { server remote:443; server localhost:7070 backup; } но локальный сервер не https, и все не очень красиво :-( думал тут еще поднять на этом же nginx локальный https на порту 7073, проксировать в него как backup, но тут начинаются сложности с сертификатами. Опять же думал о другом варианте: proxy_pass $use_backend; error_page 500 502 504 = @fallback_local_node; location @fallback_local_node { internal; proxy_pass http://localhost:7070; } но тут получается что если заголовка не было, node ответил 502, то мы пойдем в node еще раз. Не то, чтобы прям ужас, но некрасиво получается... Может кто подскажет тут красивое решение? Ну и как feature request: может можно добавить к опции backup для директивы server в upstream еще какой-нибудь параметр backup_proto=http или другую опцию backup_http, чтобы при переключении на backup сервер менялся и протокол обращения. -- Fedor Dikarev _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru