Из-за временных ограничений на территории РФ наблюдаются проблемы с оплатой. Если платёж не проходит, оставьте запрос в службу поддержки.Служба поддержки работает 24/7 — мы всегда на связи по вопросам хостинга и серверов.Открыт прием заявок на аренду выделенных серверов и размещение оборудования в дата-центре.Напоминаем: рекомендуем включить резервное копирование для дополнительной защиты данных.Доступна новая линейка VPS/VDS с NVMe-дисками и увеличенной производительностью.Технические работы на части серверов завершены. Все сервисы работают в штатном режиме.
GENERAL IT · ЖУРНАЛ

Советы и решения

Полезные приёмы и проверенные решения для Linux, серверов и сайтов.

Создать материал

В ленте

65 материалов

TTL-блокировка истекла: как fencing token останавливает старый воркер

На безопасной модели показываем, почему истечение аренды не останавливает старый процесс и как монотонный fencing token не даёт ему перезаписать результат нового владельца.

Пакетный API вернул 200: как не потерять ошибки отдельных товаров

Проверяем каждый элемент пакетного ответа: обнаруживаем пропущенный результат, не повторяем успешные SKU и безопасно возобновляем только временно неудавшуюся операцию.

Внешний API отвечает ошибками: проверяем circuit breaker без каскада тайм-аутов

Практическое руководство по circuit breaker: три технических сбоя открывают цепь, запросы перестают доходить до внешнего API, неудачная проба продлевает паузу, а успешная возвращает обычный режим.

Подпись webhook верна: как остановить повтор корректного запроса

Разбираем replay-атаку на корректно подписанный webhook: подписываем timestamp и nonce, проверяем временное окно и показываем, почему локальная память воркера теряет защиту после перезапуска.

Один лимит на несколько воркеров: проверяем общий token bucket API

На детерминированной модели сравниваем локальные и общий token bucket: два воркера получают четыре ответа 429, а единый лимитер распределяет восемь запросов без превышения.

Дельта в API: как исключить повторное прибавление количества товара

На проверяемой модели сравниваем изменение количества товара и запись его абсолютного значения. Один operation_id не даёт повторно применить ту же команду, а проверка версии отклоняет старый снимок после нового движения товара.

Сообщение снова падает: проверяем dead-letter queue и безопасный возврат

На изолированной SQLite-модели проверяем лимит повторов, перенос постоянной ошибки в dead-letter queue, откат при сбое между вставкой и удалением и однократный возврат исправленного сообщения.

Заказ сохранён, а webhook не отправлен: проверяем transactional outbox

Разбираем transactional outbox на безопасной модели: заказ и исходящее событие фиксируются одной транзакцией, сбои до и после отправки не теряют событие, а повтор использует стабильный event_id.

Как проверить, что TLS-сертификат соответствует приватному ключу

До reload извлекаем открытый ключ из сертификата и приватного ключа, сравниваем SHA-256 и отдельно обрабатываем ошибку чтения. Проверено на OpenSSL 3.0.13: совпадение, другая пара и повреждённый файл.

Ротация секрета webhook: как сменить ключ без остановки приёма

Практический guide: принимаем K1 и K2 только в ограниченном окне, связываем подпись с key_id и timestamp, проверяем HMAC через compare_digest и отключаем старый ключ по результатам семи тестов.

Как проверить unit-файл systemd до daemon-reload и запуска службы

Проверяем полный unit-кандидат через systemd-analyze verify, разбираем код возврата, опечатку в директиве, отсутствующий исполняемый файл и потерянную зависимость — без daemon-reload и запуска службы.

Страница 1 из 6