Welcome! Log In Create A New Profile

Advanced

Re[2]: if нужен.

Михаил Монашёв
August 15, 2012 03:02PM
Здравствуйте, Валентин.

Ещё наткнулся на неочевидные грабли.

Есть конфиг

# for genereting file name in Content-Disposition header
map $request_filename $filename {
default "";
"~*(?<fn>[^/]+\.(?:gif|jpe?g|png))$" $fn;
}

map $host $sitename {
hostnames;
default "";

*.site1.ru "Site1.ru ";
*.site2.ru "Site2.ru ";

}

map $host $disposition {
hostnames;
default "";

d.* $foo;
}

Есть локейшн, в котором потом используются $1 и $2 из его регэкспа:

location ~* "^/([^/]+)/(.*)" {
proxy_pass http://$1:80/$2;
}

Если в него вставить строчки

set $foo 'attachment; filename="$sitename$filename"';
add_header Content-Disposition $disposition;

, то в $1 и $2 заносится мусор из map-ов, которые используются для
расчёта переменных $foo, $sitename и $filename . Причём не важно, выше
или ниже proxy_pass написать эти строчки. Это как бы совсем не
очевидно и при большом конфиге можно долго искать причины такого
поведения.

По хорошему у $1 и $2 могла бы быть область видимости, хотя их
глобальность тоже чем-то полезна. Не могу придумать, как было бы
правильно, но сейчас как-то не очень правильно. В том же перле, если
$1 используется в одной функции, то мне не надо думать, что она затрёт
$1 в вызвавшей функции или сама затрётся функцией, которую вызывает.

Городить именованные переменные в регэкспах конечно можно, но всё это
костыли какие-то и они не помогают, ибо $1 всёравно почему-то
портится.

nginx/1.3.0


--
С уважением,
Михаил mailto:postmaster@softsearch.ru

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

if нужен.

Михаил Монашёв August 14, 2012 04:06PM

Re: if нужен.

Maxim Dounin August 15, 2012 06:12AM

Re[2]: if нужен.

Михаил Монашёв August 15, 2012 06:16AM

Re: if нужен.

Maxim Dounin August 15, 2012 06:32AM

Re[2]: if нужен.

Михаил Монашёв August 15, 2012 06:42AM

Re[2]: if нужен.

Михаил Монашёв August 15, 2012 07:20AM

Re: if нужен.

Maxim Dounin August 15, 2012 09:16AM

Re[2]: if нужен.

Михаил Монашёв August 15, 2012 12:30PM

Re: if нужен.

VBart August 15, 2012 12:38PM

Re[2]: if нужен.

Михаил Монашёв August 15, 2012 03:02PM

Re: if нужен.

VBart August 15, 2012 03:16PM

Re[2]: if нужен.

Михаил Монашёв August 15, 2012 05:20PM

Re: if нужен.

Gena Makhomed August 15, 2012 07:16AM

Re: if нужен.

Dmitry E. Oboukhov August 16, 2012 01:52AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 174
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