Re: Вопросы по add_header

Maksim Anfilatov maksim at woyager.ru
Thu Nov 22 14:33:29 UTC 2012


Добрый день.

С HeaderMore я погорячился, у них прямо в доке But variables won't work in
header keys due to performance considerations.

С $r->header_out

в pm

sub test_vars{
        my $r=shift;
        my ($key,$value)=('key_rfom_var'.(int(rand(100))),'value from
var'.(int(rand(100))));
        $r->header_out($key,$value);
        $r->send_http_header('text/text');
        $r->print("$key\t$value\n");
        return OK;
}

в nginx.conf

        location /test_vars {
                perl charts::test_vars;
        }

ну и telnet localhost 80

GET /test_vars HTTP/1.1
Host: charts.test

HTTP/1.1 200 OK
Server: nginx/1.2.1
Date: Thu, 22 Nov 2012 14:31:17 GMT
Content-Type: text/text
Transfer-Encoding: chunked
Connection: keep-alive
key_rfom_var45: value from var5

1f
key_rfom_var45  value from var5

0

GET /test_vars HTTP/1.1
Host: charts.test

HTTP/1.1 200 OK
Server: nginx/1.2.1
Date: Thu, 22 Nov 2012 14:31:22 GMT
Content-Type: text/text
Transfer-Encoding: chunked
Connection: keep-alive
key_rfom_var77: value from var56

20
key_rfom_var77  value from var56

0

GET /test_vars HTTP/1.1
Host: charts.test

HTTP/1.1 200 OK
Server: nginx/1.2.1
Date: Thu, 22 Nov 2012 14:31:26 GMT
Content-Type: text/text
Transfer-Encoding: chunked
Connection: keep-alive
key_rfom_var29: value from var1

1f
key_rfom_var29  value from var1

0


С уважением.

22 ноября 2012 г., 18:16 пользователь Dmitry Zhiltsov
<zaabjuda at gmail.com>написал:

> А можно простенький пример?
>
> On 22.11.2012, at 15:56, Maksim Anfilatov <maksim at woyager.ru> wrote:
>
> Добрый день.
>
> В документации сказано только, что значение может содержать переменные.
>
> http://nginx.org/en/docs/http/ngx_http_headers_module.html
> Adds the specified field to a response header provided that the response
> code equals 200, 204, 206, 301, 302, 303, 304, or 307. A value can contain
> variables.
>
> Если переменные получаются из встроенного перла, то им же можно выставить
> кастомный header
> http://nginx.org/en/docs/http/ngx_http_perl_module.html#methods$r->header_out
>
> Можно еще попробовать HeadersMore
> http://wiki.nginx.org/HttpHeadersMoreModule.
>
> С уважением.
>
> 22 ноября 2012 г., 15:32 пользователь Дмитрий Жильцов <zaabjuda at gmail.com>написал:
>
>> Здравствуйте.
>>
>> Появился вопрос по работе директивы add_header
>>
>> Сначала описание задачи.
>>
>> Мне необходимо рандомно отдавать клиенту кастомные хидеры из списка
>>
>> Есть файл в котором на каждой строчке записи вида
>>
>> $key(имя хидера): $val (содержимое)
>>
>> С помощью встроенного перла я получаю две переменные $key и $val , и
>> пытаюсь их применить в директиве add_header
>>
>> add_header $key $val
>>
>> На клиенте получаю не то , что ожидал
>>
>> Имя заголовка $key (те nginx не подставляет значение переменной а в имя
>> заголовка подставляет само имя переменной )
>> Тело заголовка как и ожидалось содержит значение переменной $val
>>
>> Вопрос - что я делаю не так?
>> Есть ли у nginx такой функционал?
>> Если нет то какое есть возможное решение?
>>
>> Спасибо
>>
>>
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru at nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20121122/1295a090/attachment.html>


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