ПРОЕКТЫ 


  АРХИВ 


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: nginx & core dump 3



Hello!

On Tue, Oct 30, 2012 at 03:17:24AM -0400, ak84 wrote:

> Максим, добрый день.
> Сторонние модули пробовал отключать в версии 0.8.54 , ситуация повторялась,
> сейчас отключить header_more не могу.

Just a side note: судя по трейсу, который вы приводили - виноват в 
падениях именно headers more модуль.  Ибо протит список входящих 
заголовков.

Его автору я неоднократно объяснял, что изменять список входящих 
заголовков запроса - это идеологически неправильно, и вместо этого 
надо пользоваться инструментами, которые позволяют с этим списком 
при необходимости выборочно работать, e.g. proxy_set_header.  Он, 
однако, продолжает эту функциональность предлагать пользователям, 
наступая то на одни, то на другие грабли.

> Может быть как-то можно без header_more реализовать следующую схему ( для
> ip, не из доверенного списка очищать определённые хедеры):
> 
> имеем в конфиге:
> 
> geo trustip {
> default 0;
> 192.168.1.0/24 1;
> 192.168.2.0/24 1;
> etc.
> }
> upstream backend {
>     server 192.168.0.10:80;
>     server 192.168.0.11:80;
> }
> 
> 
>     server {
>         listen  ip:80;
>         server_name hostname.ru;
> 
> if ( $trustip = "1" )
> {
>         access_log /var/log/nginx/access_from_trust.log main;
> }
> 
> if ( $trustip != "1")
> {
>         access_log /var/log/nginx/access_from_not_trust.log main;
>         more_clear_input_headers 'x-nokia-test:';
> }

Правильно делать так:

    map $trustedip $nokia {
        default    "";
        1          $http_x_nokia_test;
    }

    proxy_set_header X-Nokia-Test "$nokia";

При этом map{} нужно задать на уровне http{}, а proxy_set_header - 
вместе с другими заголовками proxy_set_header.

>             proxy_set_header  X-Real-IP  $remote_addr;
>             proxy_set_header  Host        $host;
>             proxy_intercept_errors on;
>             include mpro_special.conf;
>             include short_urls.conf;
>             proxy_pass        http://backend;
>             proxy_next_upstream error timeout invalid_header http_500
> http_502;
>         }
> 
> }

На всякий случай, документацию берут тут:

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

-- 
Maxim Dounin
http://nginx.com/support.html

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


 




Copyright © Lexa Software, 1996-2009.