Welcome! Log In Create A New Profile

Advanced

Re: В ngx_http_userid_module нельзя задавать userid_domain из переменной?

Dmitry Koterov
April 08, 2010 06:14PM
А вообще, можно вот так сделать:

perl_require "Digest/MD5.pm";
perl_set $uuid 'sub {
my $r = shift;
my $uuid = "";
if (($r->header_in("Cookie")||"") =~ /\buuid=([^;]+)/) {
$uuid = $1;
} else {
my $domain = $r->header_in("Host");
if ($domain !~ /\bstatic\./s && $domain =~ /(\w+ \.
\w+)$/xs) {
$domain = $1;
$uuid = Digest::MD5::md5_hex("super-secret" . time()
. int(rand(2000000000)));
$r->header_out(
"Set-Cookie",
"uuid=$uuid; expires=Wed, 08 Jul 2037 22:53:52
GMT; domain=.$domain; path=/"
);
$r->header_out("P3P", q{policyref="/w3c/p3p.xml",
CP="CUR ADM OUR NOR STA NID"});
}
}
return $uuid;
}';

# Run uuid calculation & header set (use its side-effect: header
# X-Uuid is not used, we only need to execute $uuid-bound Perl code).
add_header X-Uuid $uuid;

...
# Add uuid fo access_log.
log_format main '... "$uuid"';


Вроде это работает и даже не очень сильно замедляет скорость (на тестовой
пустой странице дало где-то 2800 запросов в секунду вместо 3000).
Правда, в боевых условиях пока не проверял, только wget-ом пробил 2 варианта
(когда есть кука uuid и когда нет).




2010/4/9 Dmitry Koterov <dmitry@koterov.ru>

> Вот такой конфиг не срабатывает - выставляет куку с "domain=$base_domain"
> (прямо вот такой строкой):
>
> set $base_domain "none";
> if ($http_host ~* "([^.]+\.[^.]+)$") {
> set $base_domain $1;
> }
> ...
> userid_domain $base_domain;
>
> А очень жалко. Ведь могут быть блоки server, которые обрабатывают сразу
> много доменов, и неправильно было бы захардкодить имя домена в директиве
> userid_domain.
>
> Можно ли с этим что-то сделать?
>
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

В ngx_http_userid_module нельзя задавать userid_domain из переменной?

Dmitry Koterov April 08, 2010 04:40PM

Re: В ngx_http_userid_module нельзя задавать userid_domain из переменной?

Dmitry Koterov April 08, 2010 06:14PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 108
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready