Hello! On Thu, May 23, 2019 at 03:10:28PM +0500, Dmitry Sergeev wrote:
> Всем привет. Не поделится ли кто-нибудь опытом, сильно ли может повлиять > на произовдительность конструкция: > > > location / { > > if (-f /var/www/maintenance_on.html) { > > return 503; > > } > > > > > > ... > > } > > > > > > # Error pages. > > error_page 503 /maintenance_on.html; > > location = /maintenance_on.html { > > root /var/www; > > } > Например 7-10 location с такими проверками на хосте 4K запросов в секунду? > На каждый запрос он будет проверять существование файла? Или как-то это > делает по таймауту, который можно настроить? При такой конфигурации на каждый запрос[*] будет делаться системный вызов stat(). Скорее всего необходимые данные будут в кэше операционной системы, и этот системный вызов будет быстрым, так что на производительности это скажется минимально. Так что если речь не идёт о борьбе за каждый процент - про производительность подобной конструкции можно не переживать. Другой вопрос, что сама по себе конструкция не очень, выкатку нужно уметь делать без перерывов в обслуживании. [*] Вообще-то в можно ещё и настроить кэширование внутри nginx'а, чтобы сэкономить системные вызовы (http://nginx.org/r/open_file_cache). Но практика показывает, что на производительность это влияет минимально, а вот выстрелить себе в ногу неатомарным изменением файлов станет легко. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru