add_after_body тут нужен исключительно для демонстрации сабреквеста. Подобную ситуацию можно получить с любым модулем, использующим сабреквест.
http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_pass <http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_pass> Если директива proxy_pass указана без URI, то при обработке первоначального запроса на сервер передаётся URI запроса в том же виде, в каком его прислал клиент, а при обработке изменённого URI - нормализованный URI запроса целиком: Исходя из этого совсем не очевидно почему main request долетает до бэкенда без изменения URI, а subrequest с изменением URI. > 21 апр. 2015 г., в 11:40, Иван Мишин <simplebo...@gmail.com> написал(а): > > Добрый день! > add_after_body /duo; > Для чего эта строка в конфиге? > Ну а так вроде бы все правильно по логике должно выдавать "uno tres ". В > чем проблема не совсем понятно > > 20 апреля 2015 г., 17:39 пользователь Eugene Mychlo <m...@cname.me > <mailto:m...@cname.me>> написал: > Добрый день, > > Столкнулся со странной поведением nginx при использовании subrequest в > сочетании с try_files с proxy-хэндлером. > В приведенной ниже конфигурации, ожидалось, что при наличии файла /tmp/tres, > на запрос > > http://127.0.0.1:8080/uno <http://127.0.0.1:8080/uno> > > nginx вернет строку "uno duo " или "tres tres ", но никак не "uno tres ". > > Т.е. URI основного запроса передается без изменений (как и описано в > документации), а подзапроса - нет. > Ситуация воспроизводится на nginx версий 1.7.9 - 1.7.12. > > Отсюда вопрос: является ли подобное поведение задуманным или это бага? > Будет ли меняться? И не стоит ли отметить это в документации? > > > > server { > listen 8081; > default_type text/html; > > location /uno { return 200 "uno "; } > location /duo { return 200 "duo "; } > location /tres { return 200 "tres "; } > } > > > server { > listen 8080; > > location / { > root /tmp; > try_files /tres =404; > proxy_pass http://127.0.0.1:8081 <http://127.0.0.1:8081/>; > add_after_body /duo; > } > } > > > > -- > Regards, > Eugene Mychlo MYC-RIPE EAMYC-RIPN > > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org <mailto:nginx-ru@nginx.org> > http://mailman.nginx.org/mailman/listinfo/nginx-ru > <http://mailman.nginx.org/mailman/listinfo/nginx-ru> > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru