nginx & core dump 3
Maxim Dounin
mdounin at mdounin.ru
Tue Oct 30 07:44:47 UTC 2012
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