Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: эмуляция if/else
Roxis wrote:
On Wednesday 23 April 2008, Sergey Shepelev wrote:
Всегда были не совсем ясны сходство и различия break;, rewrite break и
rewrite last.
Обычная задача. Существующие файлы отдавать статикой, несуществующие
проксировать. Сейчас написано два if: -f и !-f.
Как это написать более правильно?
Может так? Есть комментарии по поводу этого куска?
location / {
if (-f $request_filename) {
break;
root html;
}
proxy_pass http://127.0.0.1:1234;
}
более правильно не использовать if вообще:
location / {
root html;
error_page 404 = @backend;
}
location @backend {
proxy_pass ...;
}
Подскажите, насколько больший оверхеад дают использование if по
сравнению с неиспользованием?
мне нравится реализация автоматических субдоменов
server {
listen 80;
server_name example.com *.example.com;
root /var/www/example.com/$subdomain;
set $subdomain "";
if ($host ~* ^([a-z0-9-\.]+)\.example.com$) {
set $subdomain $1;
}
if ($host ~* ^www.example.com$) {
set $subdomain "";
}
}
но, судя по настроениям рассылки, это плохая практика...
--
Wbr, SK
|