the “alias” directive must use captures + оптимизация конфига

Nick Knutov mail на knutov.com
Ср Янв 27 00:30:12 MSK 2010


Приветствую всех,

А кто-нибудь может сказать, зачем именно the “alias” directive must use 
captures inside location given by regular expression? Почему нельзя 
сделать локейшен с регекспом, но внутри ничего из регекспа не использовать?

И заодним - чтобы обрабатывать интернал редиректы в статику, но статику 
никогда не отдавать апачу - приходится делать тафталогию в конфиге.

Нельзя ли это как-то оптимизировать и упростить?

location / {
	proxy_pass          http://127.0.0.2:80;
	[...]
}

location /internal_xxx/ {
	alias /home/***/www/***/;
	internal;
}
location ~* ^/internal_xxx/(.+\.(?:jpg|jpeg|gif|png|txt))$ {
	alias /home/***/www/***/$1;
	internal;
}

location ~* ^.+\.(jpg|jpeg|gif|png|txt)$ {
	root /home/***/www/***;
	expires 1d;
}

Последний локейшен нужен чтобы обрабатывать статику не отправляя её 
апачу из первого локейшена, а второй интернал локейшен нужен чтобы 
правильно отдавалась статика если был сделан интернал редирект на нее. 
Если этот локейшен убрать - к пути добавляется internal_xxx/, всё это 
попадает в последний локейшн и 404.


-- 
Best Regards,
Nick Knutov
http://knutov.com
ICQ: 272873706
Voice: +7-904-84-23-130



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