ПРОЕКТЫ 


  АРХИВ 


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: upstream keepalive + Host override : problem?



Hello!

On Mon, Apr 29, 2013 at 02:53:19PM +0400, Azarov Alexander wrote:

> Добрый день,
> 
> Конфиг у меня выглядит вот так:
> 
> upstream playapp {
>   server ?:9000;
>   keepalive 16;
> }
> 
> server {
>   listen ... ssl;
>   server_name ?;
> 
>   proxy_set_header Host $server_name;
> 
>   location / {
>     limit_conn byConn 14;
>     limit_req zone=byReq burst=50;
> 
>     proxy_pass http://playapp;
>     proxy_http_version 1.1;
>     proxy_set_header Connection "";
>   }
> }
> 
> Проблема:
> 
> 2013/04/29 14:19:02 [debug] 21900#0: *1013606439 http proxy header:
> "GET /pic/2034583 HTTP/1.1
> Host: playapp
> Cache-Control: max-age=0
> Pragma: no-cache
> Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
> User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 
> (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31
> 
> Т.е. на бэкенд уходит "Host: playapp" вместо "Host: 
> $server_name". Если убрать proxy_http_version и proxy_set_header 
> Connection, все нормализуется, бэкенд видит "Host: $server_name"

http://nginx.org/r/proxy_set_header/ru:

: Директивы наследуются с предыдущего уровня при условии, что на 
: данном уровне не описаны свои директивы proxy_set_header.

Т.е. правильно будет написать так:

    server {
        ...
        proxy_set_header Host $server_name;

        location / {
            ...
            proxy_set_header Host $server_name;
            proxy_set_header Connection "";
        }
    }

или так:

    server {
        ...
        proxy_set_header Host $server_name;
        proxy_set_header Connection "";

        location / {
            ...
        }
    }

-- 
Maxim Dounin
http://nginx.org/en/donation.html

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.