if + set лучше не использовать, скорее всего вы хотите иного поведения.
В вашем случае, правильно, делать capture на уровне server_name;
2010/8/30 nightflash <nginx-forum@nginx.us>
> Есть проблема следующего характера:
>
> location /mmm/ {
> default_type text/javascript;
> charset utf-8;
>
> if ($host ~* "site([0-9]+)(?:\.)") {
> set $site_id $1;
> }
>
> echo $host$site_id;
>
> }
>
> Если if отрабатывает то все сваливается
> с 502 ошибкой. Т.е. если host будет вида
> site10.host.ru то вываливается 502 ошибка. Если
> убрать echo все работает. Если запросить
> просто site.host.ru все тоже работает. Но
> вместе эта конструкция работать не
> хочет. Есть мнения, почему?
>
> [b]nginx version: nginx/0.8.49[/b]
>
> Posted at Nginx Forum:
> http://forum.nginx.org/read.php?21,125065,125065#msg-125065
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>
--
wbr, Kirill
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru