эмуляция if/else
Sergej Kandyla
sk.paix at gmail.com
Wed Apr 23 19:45:18 MSD 2008
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
More information about the nginx-ru
mailing list