Лучшие решения для Вас и Вашего бизнеса!
Понадобилось приостановить работу некоторых сайтов, причем временно. Для реализации решил использовать возможность Nginx отдавать нужные страницы ошибок.
Саму страницу 50x.html помещаем в /var/www/errors.
Для примера простая страница:
На сайте ведутся технические работы
«width=device-width, initial-scale=1, maximum-scale=1»
«На сайте ведутся технические работы»
Технический перерыв
Приносим свои извинения за перебои в работе сайта.
Наши технические специалисты уже работают над устранением неполадок.
Время на прочтение

Совсем недавно возникла интересная задача: реализовать закрытие доступа к веб-сайту из вне, на время технических работ. Мне показалось, что это довольно распространенная задачка, решение которой заинтересует многих.
Один из возможных вариантов решения — ниже.
Дано
- Сервер: 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).

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

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

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

Итак, если подвести итог, тогда для большей юзабилити сайта при проведении технических работ, необходимо:
- дать понять пользователю с первого взгляда, что сайт недоступен, но это временно;
- добавить на страницу контактную информацию;
- разместить ссылки, где посетитель может найти подобную информацию;
- рассказать о других ваших сайтах, которые на данный момент доступны и будут весьма полезны посетителям (например, блог компании).
Вообще, чем больше информации вы разместите на страницу under construction, тем больше она понравится посетителю и он обязательно вернется к вам позже, как и поиковая система при виде 503-ей ошибки.
Желательно о проведении технических работ над сайтом предупреждать зараннее на блоге компании (сайта) либо на форуме, или же в листах рассылки для подписчиков, чтобы облегчить жизнь пользователям и не потерять их доверие к вашему сервису. Простенькие страницы вызывают только раздражение и вопросы, когда же все-таки сервер начнет работать? Если вам ценны клиенты и посетители, тогда поставьте себя на их место!
Статьи по теме


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



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










Темы
Остались еще вопросы? Просто позвоните и задайте их специалистам
Технические работы на ЕИС
Это Анастасия Карасева и Елена Веретённик, научные сотрудники Прикладного Центра МАСТ при Европейском университете в Санкт-Петербурге, и в этом тексте мы подробно расскажем о регламентных работах в единой информационной системе «Закупки» и о том, как они связаны со сверхурочной работой специалистов по госзакупкам.
Единая информационная система «Закупки» (ЕИС) — цифровая среда, где в России осуществляются государственные закупки. В ЕИС есть две части: открытая и закрытая. Данные из открытой части доступны для анализа: их можно использовать as is или взять обработанными с сайта «Госзатраты». Нам довелось поработать с ЕИС в ходе проекта про сверхурочную работу специалистов по госзакупкам. Наше исследование было посвящено сверхурочной работе «закупщиков». Мы оценивали долю закупок, опубликованных в ЕИС в нерабочее время (в будни с 19:00:01 до 07:59:59 и в выходные) в разных регионах и у разных организаций. Мы обнаружили, что открытыми данными из ЕИС не так-то легко воспользоваться. Но это было не единственное открытие.
Боже, что это за порождение ада?
Давайте сделаем поправку и уберем субботы и воскресенья, которые, как правило, или являются выходными днями, или подразумевают не такое большое количество зарегистрированных контрактов.
Что объединяет эти и другие нелогичные пики?
В поисках объяснения пиков на «кардиограмме» мы начали внимательнее изучать сайт ЕИС. Так мы обнаружили, что в ЕИС регулярно проводятся регламентные работы, и в эти моменты система по большей части недоступна пользователям.
Регламентные (они же технические) работы в ЕИС могут затрагивать всю систему или её отдельные части: например, только открытую (ОЧ) или закрытую часть (ЗЧ), закупки по 44-ФЗ или 223-ФЗ, личный кабинет пользователя (ЛКП), единый реестр участников закупок (ЕРУЗ) и др. На сайте ЕИС есть уведомления о грядущих — а иногда и уже идущих — технических работах; с 2019 года для этих уведомлений отведен специальный раздел в новостях.
Чтобы оценить объем регламентных работ и их связь со сверхурочной работой, мы спарсили новости с уведомлениями о регламентных работах — те, которые были доступны по состоянию на декабрь 2021 г. Нас интересовал период с 2015 года, а в специализированном разделе были уведомления только начиная с 2019 года. Поэтому мы решили парсить не раздел, а короткие сообщения из новостной ленты ЕИС, используя для отбора фразу “регламентные работы” и ограничив парсинг определенным количеством страниц с новостями. Хотя большинство уведомлений содержали ключевую фразу, просмотр в «ручном режиме» выявил и другие формулировки, указывающие на время, когда пользователи не могут работать в ЕИС: например, «временная недоступность функций». Однако в таких объявлениях не было никакой информации о времени начала и конца периода недоступности системы, поэтому их мы не включили в итоговый файл. На этом этапе в датасете было 1540 записей.
Но не все из собранных новостей были непосредственными уведомлениями о регламентных работах. Некоторые просто упоминали их в ряду прочей информации или же сообщали, что работы отменены, продлены или завершены.
Далее, используя регулярные выражения, мы почистили датасет от лишних пробелов и извлекли из краткого описания новости даты начала и окончания регламентных работ. (официальный сайт, 44-ФЗ, ЕРУЗ, открытая часть. Также мы добавили в датасет дамми-переменные для отмененных, продленных и завершенных регламентных работ. На основе этих переменных мы отфильтровали только те объявления, где речь шла о предстоящих регламентных работах в интересовавших нас частях ЕИС.
После этой фильтрации осталось еще 40 подходящих новостей, для которых даты регламентных работ были неопределены. Для них мы спарсили полные тексты новостей, извлекли оттуда начальную и конечную даты и отсекли те из них, где были откровенные ошибки. Например, год и месяц в дате опубликования новости были больше, чем год в дате регламентных работ (см. скриншот ниже), или дат в тексте одной новости оказывалось слишком много. Итоговый датасет включал 831 запись о тех или иных видах регламентных работ.

Скриншот с сайта ЕИС «Закупки»
На получившейся выборке новостей мы увидели интересные результаты.
Во-первых, число дней, когда объявлены регламентные работы, превышает 50% всех возможных рабочих дней в году. В ряде месяцев доля дней, которых так или иначе затронули технические работы, достигает 80%.
Соотношение обычных рабочих дней и дней технических рабочих в ЕИС по месяцам
Во-вторых, с каждым годом количество дней технических работ в месяц имеет тенденцию к увеличению. У «закупщиков» даже рождается свой фольклор вроде «ЕИС профилактируется», «ЕИС отдыхает — люди работают».
В-третьих, чаще всего регламентные работы приходятся на московскую ночь (с 23:00 до 06:00) и дальневосточное утро, тем самым вынуждая перерабатывать, в первую очередь, «закупщиков» на Дальнем Востоке. Впрочем, это смягчается тем, что чаще всего регламентные работы проводятся в пятницу и субботу, оставляя сотрудникам возможность на законный отдых от ЕИС и её потрясений, даже если последние идут для всеобщего блага.
Вернемся к нашему графику с пиками.
Как мы помним, все 7 контрактов, заведённых в нерабочее время в пятницу 28 августа 2020 г., были с Дальнего востока (Приморский край, Хабаровский край, Амурская область). Объявление о длинных регламентных работах, начинающихся в ночь на пятницу (с 3 до 6 часов утра, в зависимости от региона) на Дальнем Востоке и длящихся все выходные, было выложено на сайте ЕИС дальневосточным вечером 27 августа — в 20:49 в Амурской области и 21:49 в Приморье и Хабаровском крае.

Напряженный график регламентных работ в конце августа 2020 г.
Можно представить, как отчаянные «закупщики» пытаются провести единичные медицинские контракты в редкий рабочий час между регламентными работами, которые шли сначала до 4 утра Мск (примерно 11 утра в Хабаровске) 27 августа, а потом внезапно продолжились до конца месяца.
Или вспомним почти 15 тыс. контрактов, опубликованных в ЕИС в нерабочее время, 9 октября 2019 года. Весь октябрь этого года — «черный месяц», практически состоящий из регламентных работ: они шли с 4 по 6 октября, с 7-го по 8-е, с 8-го по 9-е, с 10-го по 11-е и так далее. Судя по этой динамике, сотрудникам из разных регионов приходится заводить контракты когда получится, чтобы не попасть на штраф.
(Подробнее о днях технических работ и их влиянии на ЕИС в этих и других визах можно посмотреть на странице нашего проекта.)
Непредсказуемые как погода, регламентные работы на ЕИС сильно влияют на рабочую рутину «закупщиков», приводя к простоям в рабочее время и вынуждая к труду — в нерабочее. Нам же остаётся только изучать, как они устроены.
Анастасия Карасева, Елена Веретённик (МАСТ ЕУСПб)
