ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: fastcgi_pass_header X-Accel -Redirect не работает как ожидается



Hello!

On Mon, Jun 22, 2009 at 02:17:23AM +0700, Sergey Serov wrote:

> Hi all,
> 
> Схема такая:
> fcgi -> nginx1 -> nginx2 
> 
> Файлы на nginx2, соотв. обрабатывать X-Accel-Redirect на nginx1 не нужно. 
> Сделал следющее:
> 
> fastcgi_ignore_headers X-Accel-Redirect;
> fastcgi_pass_header X-Accel-Redirect;
> 
> Первое работает - заголовок перестает обрабатываться, а второе нет - 
> заголовка 
> nginx2 не видит (я тоже не вижу через curl -v).

Патч.

> При этом на nginx1 
> add_header X-Accel-Redirect $sent_http_my_filename;
> работает, чем я и решил временно проблему.

Без патча на nginx1 можно сделать так:

fastcgi_ignore_headers X-Accel-Redirect;
add_header X-Accel-Redirect $upstream_http_x_accel_redirect;

т.е. без изменений бекенда.

Maxim Dounin
diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -224,19 +224,19 @@ ngx_http_upstream_header_t  ngx_http_ups
     { ngx_string("X-Accel-Redirect"),
                  ngx_http_upstream_process_header_line,
                  offsetof(ngx_http_upstream_headers_in_t, x_accel_redirect),
-                 ngx_http_upstream_ignore_header_line, 0, 0 },
+                 ngx_http_upstream_copy_header_line, 0, 0 },
 
     { ngx_string("X-Accel-Limit-Rate"),
                  ngx_http_upstream_process_limit_rate, 0,
-                 ngx_http_upstream_ignore_header_line, 0, 0 },
+                 ngx_http_upstream_copy_header_line, 0, 0 },
 
     { ngx_string("X-Accel-Buffering"),
                  ngx_http_upstream_process_buffering, 0,
-                 ngx_http_upstream_ignore_header_line, 0, 0 },
+                 ngx_http_upstream_copy_header_line, 0, 0 },
 
     { ngx_string("X-Accel-Charset"),
                  ngx_http_upstream_process_charset, 0,
-                 ngx_http_upstream_ignore_header_line, 0, 0 },
+                 ngx_http_upstream_copy_header_line, 0, 0 },
 
 #if (NGX_HTTP_GZIP)
     { ngx_string("Content-Encoding"),


 




Copyright © Lexa Software, 1996-2009.