NginX-1.1.4 + Passenger (3.0.7, 3.0.9) + Rails3

Maxim Dounin mdounin на mdounin.ru
Сб Окт 29 19:21:42 UTC 2011


Hello!

On Sat, Oct 29, 2011 at 03:15:51PM -0400, perestoronin wrote:

> Спасибо за подсказки.
> Предлагаю свое временное (кривое), но
> решение проблем passenger и nginx старше 1.1.3
> Пытаюсь теперь решить обратную задачу -
> подстроить passenger под nginx.
> --- a/src/http/ngx_http_upstream.c.new	2011-10-29 20:40:15.000000000
> +0400
> +++ b/src/http/ngx_http_upstream.c	2011-10-29 22:05:38.000000000 +0400
> @@ -1951,9 +1951,14 @@
>      r->headers_out.status = u->headers_in.status_n;
>      r->headers_out.status_line = u->headers_in.status_line;
>  
> -    r->headers_out.content_length_n = u->headers_in.content_length_n;
> +    u->headers_in.content_length_n = r->headers_out.content_length_n;
>  
> -    u->length = u->headers_in.content_length_n;
> +    if (r->headers_out.content_length_n != -1) {
> +        u->length = (size_t) r->headers_out.content_length_n;
> +
> +    } else {
> +        u->length = NGX_MAX_SIZE_T_VALUE;
> +    }
>  
>      return NGX_OK;
>  }

Это - не решение, и даже не близко.  Сломает приблизительно всю 
работу с бекендами.  Решение - это пропатчить passenger, чтобы он 
правильно ставил u->headers_in.content_length_n.

Maxim Dounin



Подробная информация о списке рассылки nginx-ru