Welcome! Log In Create A New Profile

Advanced

Re[2]: Проблема: upstream buffer is too small

Илья Винокуров
September 28, 2010 04:36AM
> Без сторонних модулей должна сработать какая-то такая схема с
> двойным проксированием:
> <!--#include virtual="/precache/..." wait="yes" -->
> location /precache/ {
> proxy_pass http://localhost/realcache/;
> proxy_method HEAD;
> proxy_pass_request_body off;
> proxy_pass_request_headers off;
> }
> location /realcache/ {
> proxy_pass ...service...;
> proxy_cache ...
> }
> Детали:
> - В подзапросе из ssi метод при проксировании ставится в HEAD,
> чтобы тела ответа с той стороны не присылали.
> - При втором проксировании с proxy_cache кеш сам поменяет запрос
> на GET и закеширует результат.
> Как вариант - опять же с двойным проксированием, но проксировать
> на сервис, и при втором проксировании добавлять X-Accel-Redirect
> на реальный бекенд. Это наверное несколько прямее чем
> Maxim Dounin

Здравствуйте, Максим!
Не работает такая схема :(
По этой схеме nginx в локейшн /realcache/ пробрасывает метод запроса HEAD.
Не хватает директивы proxy_set_method.

Сделал файлик precache.html, в котором прописал
<!--#include virtual="/realcache/..." wait="yes" -->
А потом
location /precache/ {
proxy_pass http://localhost/precache.html;
proxy_method HEAD;
proxy_pass_request_body off;
proxy_pass_request_headers off;
}
location /realcache/ {
proxy_pass ...service...;
proxy_cache ...
}

Так оно тоже не работает - nginx на такие запросы не генерирует тело ответа.

Смотрю в сторону ngx_http_sub_module, так там тоже все не гладко:
Штатное не понимает регулярку, а без регулярки оно никуда не годится, вот если бы там были директивы:
sub_filter_start # Сигнатура, с которой начать вырезать
sub_filter_stop # Сигнатура, на какой закончить вырезать
sub_filter_replace # Что вставить взамен

То я свой прекешер обрамил бы длинными символьными последовательностями и затем вырезал бы результат из страницы...

С почтением,
Илья Винокуров.

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Re[6]: Проблема: upstream buffer is too small

Илья Винокуров September 27, 2010 08:58AM

Re: Проблема: upstream buffer is too small

Olexander Shtepa September 27, 2010 09:08AM

Re: Re[6]: Проблема: upstream buffer is too small

Alexander Petrovsky September 27, 2010 09:08AM

Re: Re[6]: Проблема: upstream buffer is too small

Sergey Shepelev September 27, 2010 09:32AM

Re: Проблема: upstream buffer is too small

Maxim Dounin September 27, 2010 10:02AM

Re[2]: Проблема: upstream buffer is too small

Илья Винокуров September 28, 2010 04:36AM

Re: Проблема: upstream buffer is too small

Maxim Dounin September 28, 2010 08:56AM

Re[2]: Проблема: upstream buffer is too small

Илья Винокуров September 29, 2010 02:58AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 199
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready