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

Maxim Dounin mdounin at mdounin.ru
Tue Jun 23 12:36:20 MSD 2009


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
-------------- next part --------------
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"),


More information about the nginx-ru mailing list