<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">В этом случае код ответа будет 200, а не 503, как в условии.<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">24 мая 2019 г., в 09:42, Vladimir Getmanshchuk <<a href="mailto:vladget@gmail.com" class="">vladget@gmail.com</a>> написал(а):</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div dir="ltr" class="">Кстати конструкцию можно сильно упростить через try_files /maintenance_on.html ... ;</div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, May 23, 2019 at 3:44 PM Maxim Dounin <<a href="mailto:mdounin@mdounin.ru" class="">mdounin@mdounin.ru</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Hello!<br class="">
<br class="">
On Thu, May 23, 2019 at 03:10:28PM +0500, Dmitry Sergeev wrote:<br class="">
<br class="">
> Всем привет. Не поделится ли кто-нибудь опытом, сильно ли может повлиять <br class="">
> на произовдительность конструкция:<br class="">
> <br class="">
> >      location / {<br class="">
> >          if (-f /var/www/maintenance_on.html) {<br class="">
> >              return 503;<br class="">
> >          }<br class="">
> ><br class="">
> ><br class="">
> >          ...<br class="">
> >      }<br class="">
> ><br class="">
> ><br class="">
> >      # Error pages.<br class="">
> >      error_page 503 /maintenance_on.html;<br class="">
> >      location = /maintenance_on.html {<br class="">
> >          root /var/www;<br class="">
> >      }<br class="">
> Например 7-10 location  с такими проверками на хосте 4K запросов в секунду?<br class="">
> На каждый запрос он будет проверять существование файла? Или как-то это <br class="">
> делает по таймауту, который можно настроить?<br class="">
<br class="">
При такой конфигурации на каждый запрос[*] будет делаться <br class="">
системный вызов stat().  Скорее всего необходимые данные будут в <br class="">
кэше операционной системы, и этот системный вызов будет быстрым, <br class="">
так что на производительности это скажется минимально.<br class="">
<br class="">
Так что если речь не идёт о борьбе за каждый процент - про <br class="">
производительность подобной конструкции можно не переживать.  <br class="">
Другой вопрос, что сама по себе конструкция не очень, выкатку <br class="">
нужно уметь делать без перерывов в обслуживании.<br class="">
<br class="">
[*] Вообще-то в можно ещё и настроить кэширование внутри nginx'а, <br class="">
чтобы сэкономить системные вызовы (<a href="http://nginx.org/r/open_file_cache" rel="noreferrer" target="_blank" class="">http://nginx.org/r/open_file_cache</a>). <br class="">
Но практика показывает, что на производительность это влияет <br class="">
минимально, а вот выстрелить себе в ногу неатомарным изменением <br class="">
файлов станет легко.<br class="">
<br class="">
-- <br class="">
Maxim Dounin<br class="">
<a href="http://mdounin.ru/" rel="noreferrer" target="_blank" class="">http://mdounin.ru/</a><br class="">
_______________________________________________<br class="">
nginx-ru mailing list<br class="">
<a href="mailto:nginx-ru@nginx.org" target="_blank" class="">nginx-ru@nginx.org</a><br class="">
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank" class="">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div><br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div dir="ltr" class="gmail_signature">Yours sincerely,<br class="">Vladimir Getmanshchuk</div>
_______________________________________________<br class="">nginx-ru mailing list<br class=""><a href="mailto:nginx-ru@nginx.org" class="">nginx-ru@nginx.org</a><br class="">http://mailman.nginx.org/mailman/listinfo/nginx-ru</div></blockquote></div><br class=""></body></html>