Nginx — уходим на технические работы

Лучшие решения для Вас и Вашего бизнеса!

Понадобилось приостановить работу некоторых сайтов, причем временно. Для реализации решил использовать возможность Nginx отдавать нужные страницы ошибок.

Саму страницу 50x.html помещаем в /var/www/errors.

Для примера простая страница:

На сайте ведутся технические работы
«width=device-width, initial-scale=1, maximum-scale=1»
«На сайте ведутся технические работы»

Технический перерыв
Приносим свои извинения за перебои в работе сайта.
Наши технические специалисты уже работают над устранением неполадок.

Время на прочтение

Nginx — уходим на технические работы

Совсем недавно возникла интересная задача: реализовать закрытие доступа к веб-сайту из вне, на время технических работ. Мне показалось, что это довольно распространенная задачка, решение которой заинтересует многих.
Один из возможных вариантов решения — ниже.

Дано

  • Сервер: Ubuntu 10.04 LTS
  • Nginx в качестве фронт-энда

Задача

  • Время на «закрытие» должно быть минимальным (в иделе — меньше секунды)
  • Каждый раз менять конфиг Nginx при проведении работ — нельзя
  • Перезагружать Nginx при проведении работ тоже нельзя (ни restart, ни reload)

Столь жесткие условия продиктованы в первую очередь соображениями удобства использования и элегантности решения. Конечно же не являются обязательными.

Решение

Было решено в качестве переключателя использовать триггер-файл (например, /etc/nginx/maintenance.file ). При его появлении Nginx должен будет возвращать код ошибки 503 и отображать соответствующую страничку. Для этого сохраняем куда-нибудь существующий конфиг:

Кому что показывать

Мы хотим чтоб 503-я показывалась только если:

  • Так как триггер-файл создан: $tmp = «clo»
  • Айпишник не из списка исключений: $maintenance = «yes»
  • Поскольку $maintenance = «yes», то: $action = $tmp + «se» = «close»

Все «чужие» видят страницу 503, а для нашей сети одно из условий не выполняется и переменная $action остается не полоной ($action = «сlo»). Как результат — для нас ничего не изменится и мы будем попадать на сайт.

Для того, чтобы модифицированный конфиг вступил в силу рестартуем веб-сервер

sudo /etc/init.d/nginx restart

Модуль ngx_http_geo_module имеет множество дополнительных «плюшек». Например, есть возможность подгружать список с адресами и значениями из отдельного файла. Это позволит быстро изменять список исключения, не меняя конфиг Nginx. За подробностями прошу в документацию.

На этом настройка окончена.
Использование:

  • Закрыть доступ: touch /etc/nginx/maintenance.file
  • Открыть доступ: rm /etc/nginx/maintenance.file

Очень надеюсь, что изложенный выше способ будет кому-то полезен и сэкономит время.

Как правильно проводить технические работы на сайте

Рано или поздно вебмастера сталкиваются с проблемой проведения технических работ на сайте, останавливая его функционирование по различным причинам:

  • смена движка сайта, дизайна или изменение базы данных
  • модернизация установленного программного обеспечения
  • обновление сервера, покупка и установка нового оборудования

Либо другие причины, по которым требуется приостановить работу сайта. Как правильно проводить технические работы, чтобы с одной стороны, не потерять позиции в поисковых системах, а с другой, оставаться полезным для посетителей и не терять их доверие? Об этом и хотелось бы поговорить.

Under Construction

Вешая на сайт страницу under construction, нужно зараннее побеспокоиться о том, что новый контент будет виден как пользователям, так и поисковым системам. Ваши тайтлы и сниппеты в поисковой выдаче могут измениться, и большинство страниц вылететь как дубликаты. Чтобы не допустить этого, необходимо отдавать поисковым ботам заголовки с 503 ошибкой (сайт временно недоступен).

Про кислород:  Спиромедикал сипап аппарат

header(‘/1.1 503 Service Temporarily Unavailable’); header(‘Status: 503 Service Temporarily Unavailable’); header(‘Retry-After: 3600’); header(‘X-Powered-By:’);

Кстати, надо не забыть включить сапу, если вы её используете, дабы система не потеряла размещенных на вашем сайте ссылок.

Посетители, пришедшие на ваш сайт и увидевшие одну надпись

Просим прощения, в данный момент над сайтом проводятся технические работы. Зайдите к нам позже.

очень разочаруются, закрыв окно браузера, так и не найдя искомой информации. А ведь это мог бы быть человек, заинтересованный в вашем продукте или сервисе. Нужно зараннее побеспокоиться о посетителе, встав на его место. Добавить на эту страницу свои контактные данные будет лучшим решением (например, как на drophk.com).

Nginx — уходим на технические работы

Некоторые также добавляют соответствующую графику, чтобы с первого взгляда была понятна представленная информация.

Nginx — уходим на технические работы

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

Nginx — уходим на технические работы

Задумавшись о том, что пользователь все-таки закроет браузер, если на странице не будет никакой информации и ссылок, необходимо поставить ссылки на другие свои ресурсы, другие сайты со схожим материалом или на форум.

Nginx — уходим на технические работы

Итак, если подвести итог, тогда для большей юзабилити сайта при проведении технических работ, необходимо:

  • дать понять пользователю с первого взгляда, что сайт недоступен, но это временно;
  • добавить на страницу контактную информацию;
  • разместить ссылки, где посетитель может найти подобную информацию;
  • рассказать о других ваших сайтах, которые на данный момент доступны и будут весьма полезны посетителям (например, блог компании).

Вообще, чем больше информации вы разместите на страницу under construction, тем больше она понравится посетителю и он обязательно вернется к вам позже, как и поиковая система при виде 503-ей ошибки.

Желательно о проведении технических работ над сайтом предупреждать зараннее на блоге компании (сайта) либо на форуме, или же в листах рассылки для подписчиков, чтобы облегчить жизнь пользователям и не потерять их доверие к вашему сервису. Простенькие страницы вызывают только раздражение и вопросы, когда же все-таки сервер начнет работать? Если вам ценны клиенты и посетители, тогда поставьте себя на их место!

Статьи по теме

Nginx — уходим на технические работы

Nginx — уходим на технические работы

Что это и как помогает бизнесу?

Nginx — уходим на технические работы

Nginx — уходим на технические работы

Nginx — уходим на технические работы

Как с ним работать?

Nginx — уходим на технические работы

Nginx — уходим на технические работы

Nginx — уходим на технические работы

Nginx — уходим на технические работы

Nginx — уходим на технические работы

Nginx — уходим на технические работы

Nginx — уходим на технические работы

Nginx — уходим на технические работы

Nginx — уходим на технические работы

Nginx — уходим на технические работы

Темы

Остались еще вопросы? Просто позвоните и задайте их специалистам

Технические работы на ЕИС

Это Анастасия Карасева и Елена Веретённик, научные сотрудники Прикладного Центра МАСТ при Европейском университете в Санкт-Петербурге, и в этом тексте мы подробно расскажем о регламентных работах в единой информационной системе «Закупки» и о том, как они связаны со сверхурочной работой специалистов по госзакупкам.

Единая информационная система «Закупки» (ЕИС) — цифровая среда, где в России осуществляются государственные закупки. В ЕИС есть две части: открытая и закрытая. Данные из открытой части доступны для анализа: их можно использовать as is или взять обработанными с сайта «Госзатраты». Нам довелось поработать с ЕИС в ходе проекта про сверхурочную работу специалистов по госзакупкам. Наше исследование было посвящено сверхурочной работе «закупщиков». Мы оценивали долю закупок, опубликованных в ЕИС в нерабочее время (в будни с 19:00:01 до 07:59:59 и в выходные) в разных регионах и у разных организаций. Мы обнаружили, что открытыми данными из ЕИС не так-то легко воспользоваться. Но это было не единственное открытие.

Про кислород:  Баллон с кислородом баротравма

Боже, что это за порождение ада?

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

Что объединяет эти и другие нелогичные пики?

В поисках объяснения пиков на «кардиограмме» мы начали внимательнее изучать сайт ЕИС. Так мы обнаружили, что в ЕИС регулярно проводятся регламентные работы, и в эти моменты система по большей части недоступна пользователям.

Регламентные (они же технические) работы в ЕИС могут затрагивать всю систему или её отдельные части: например, только открытую (ОЧ) или закрытую часть (ЗЧ), закупки по 44-ФЗ или 223-ФЗ, личный кабинет пользователя (ЛКП), единый реестр участников закупок (ЕРУЗ) и др. На сайте ЕИС есть уведомления о грядущих — а иногда и уже идущих — технических работах; с 2019 года для этих уведомлений отведен специальный раздел в новостях.

Чтобы оценить объем регламентных работ и их связь со сверхурочной работой, мы спарсили новости с уведомлениями о регламентных работах — те, которые были доступны по состоянию на декабрь 2021 г. Нас интересовал период с 2015 года, а в специализированном разделе были уведомления только начиная с 2019 года. Поэтому мы решили парсить не раздел, а короткие сообщения из новостной ленты ЕИС, используя для отбора фразу “регламентные работы” и ограничив парсинг определенным количеством страниц с новостями. Хотя большинство уведомлений содержали ключевую фразу, просмотр в «ручном режиме» выявил и другие формулировки, указывающие на время, когда пользователи не могут работать в ЕИС: например, «временная недоступность функций». Однако в таких объявлениях не было никакой информации о времени начала и конца периода недоступности системы, поэтому их мы не включили в итоговый файл. На этом этапе в датасете было 1540 записей.

Но не все из собранных новостей были непосредственными уведомлениями о регламентных работах. Некоторые просто упоминали их в ряду прочей информации или же сообщали, что работы отменены, продлены или завершены.

Далее, используя регулярные выражения, мы почистили датасет от лишних пробелов и извлекли из краткого описания новости даты начала и окончания регламентных работ. (официальный сайт, 44-ФЗ, ЕРУЗ, открытая часть. Также мы добавили в датасет дамми-переменные для отмененных, продленных и завершенных регламентных работ. На основе этих переменных мы отфильтровали только те объявления, где речь шла о предстоящих регламентных работах в интересовавших нас частях ЕИС.

После этой фильтрации осталось еще 40 подходящих новостей, для которых даты регламентных работ были неопределены. Для них мы спарсили полные тексты новостей, извлекли оттуда начальную и конечную даты и отсекли те из них, где были откровенные ошибки. Например, год и месяц в дате опубликования новости были больше, чем год в дате регламентных работ (см. скриншот ниже), или дат в тексте одной новости оказывалось слишком много. Итоговый датасет включал 831 запись о тех или иных видах регламентных работ.

Про кислород:  Spoom производитель

Nginx — уходим на технические работы

Скриншот с сайта ЕИС «Закупки»

На получившейся выборке новостей мы увидели интересные результаты.

Во-первых, число дней, когда объявлены регламентные работы, превышает 50% всех возможных рабочих дней в году. В ряде месяцев доля дней, которых так или иначе затронули технические работы, достигает 80%.

Соотношение обычных рабочих дней и дней технических рабочих в ЕИС по месяцам

Во-вторых, с каждым годом количество дней технических работ в месяц имеет тенденцию к увеличению. У «закупщиков» даже рождается свой фольклор вроде «ЕИС профилактируется», «ЕИС отдыхает — люди работают».

В-третьих, чаще всего регламентные работы приходятся на московскую ночь (с 23:00 до 06:00) и дальневосточное утро, тем самым вынуждая перерабатывать, в первую очередь, «закупщиков» на Дальнем Востоке. Впрочем, это смягчается тем, что чаще всего регламентные работы проводятся в пятницу и субботу, оставляя сотрудникам возможность на законный отдых от ЕИС и её потрясений, даже если последние идут для всеобщего блага.

Вернемся к нашему графику с пиками.

Как мы помним, все 7 контрактов, заведённых в нерабочее время в пятницу 28 августа 2020 г., были с Дальнего востока (Приморский край, Хабаровский край, Амурская область). Объявление о длинных регламентных работах, начинающихся в ночь на пятницу (с 3 до 6 часов утра, в зависимости от региона) на Дальнем Востоке и длящихся все выходные, было выложено на сайте ЕИС дальневосточным вечером 27 августа — в 20:49 в Амурской области и 21:49 в Приморье и Хабаровском крае.

Nginx — уходим на технические работы

Напряженный график регламентных работ в конце августа 2020 г.

Можно представить, как отчаянные «закупщики» пытаются провести единичные медицинские контракты в редкий рабочий час между регламентными работами, которые шли сначала до 4 утра Мск (примерно 11 утра в Хабаровске) 27 августа, а потом внезапно продолжились до конца месяца.

Или вспомним почти 15 тыс. контрактов, опубликованных в ЕИС в нерабочее время, 9 октября 2019 года. Весь октябрь этого года — «черный месяц», практически состоящий из регламентных работ: они шли с 4 по 6 октября, с 7-го по 8-е, с 8-го по 9-е, с 10-го по 11-е и так далее. Судя по этой динамике, сотрудникам из разных регионов приходится заводить контракты когда получится, чтобы не попасть на штраф.

(Подробнее о днях технических работ и их влиянии на ЕИС в этих и других визах можно посмотреть на странице нашего проекта.)

Непредсказуемые как погода, регламентные работы на ЕИС сильно влияют на рабочую рутину «закупщиков», приводя к простоям в рабочее время и вынуждая к труду — в нерабочее. Нам же остаётся только изучать, как они устроены.

Анастасия Карасева, Елена Веретённик (МАСТ ЕУСПб)

Оцените статью
Кислород