~ / blog

Блог — страница 3

Пишу о том, что делаю каждый день: скорость сайтов, кэш, обмен с 1С, серверы и WordPress без лишнего.

#Серверы 3 мин

Открыть один сайт для индексации на сервере, где закрыто всё

noindex висит на всей точке входа traefik, и роутер сайта не может его отменить. Решение — внутренняя точка без запрета, проброс по SNI без расшифровки, PROXY protocol для настоящих адресов и обязательная метка у роутера сайта.

· · ·
#Серверы 5 мин

Удалённый сервер «падал» неделями, а виноват полный диск — и защита, запершая систему

Мелкие запросы проходили, крупные стояли на 0 КБ/с — а на диске оставалось 367 МБ из 15 ГБ. Журнал на 928 МБ, vacuum, освободивший ноль, ротация Docker, которая не действует на старые контейнеры. И connlimit, который через четыре дня упёрся в обычную нагрузку сети.

· · ·
#Серверы 10 мин

PHP2Shell: две критические уязвимости PHP — что проверить сегодня и почему обновление может не обновлять

21 октября вышли PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35: две уязвимости 9.2 из 10 позволяют выполнить код на сервере без входа на сайт, задеты все SAPI. Что сломано, как за пять минут найти все свои версии PHP, почему сторонний репозиторий молча замораживает образ на старой версии, что делать, пока готовится обновление, и что видно в журналах.

· · ·
#Серверы 5 мин

«Сайт не открывается»: проверка по уровням снизу вверх

Заключительная часть цикла — чек-лист с командами: DNS, маршрут, TCP, TLS, HTTP и браузер. Что значит каждый ответ, почему 80 открыт, а 443 нет — это путь, а не сервер, почему HTTPS нельзя проверять по голому IP, и одна строка curl, которая показывает, на каком шаге остановилось время.

· · ·
#Серверы 5 мин

Кто ест слабый сервер: забытые процессы, крон в одну секунду и load без процессора

Линтер, работавший 21 час, зомби под sleep infinity, пять wp-cron в одну секунду, полтора ядра на прогрев тестовых копий и load 11 при пустом процессоре — подкачка. Как отличить зацикливание от новой работы и почему «диск отъедается» оказался перезаписью.

· · ·
#Разработка 4 мин

Свой сервер обновлений плагинов: Update URI и update_plugins_{домен}

С WordPress 5.8 плагин с Update URI не сверяется с каталогом, а спрашивает фильтр update_plugins_{домен}. Клиент на 120 строк: проверка версии, окно «Подробнее» через plugins_api, кэш 12 часов и час на ошибку, номер редакции в имени класса.

· · ·
#Серверы 4 мин

Обратная дорога: где на самом деле уходит время, пока открывается сайт

Одна страница из кэша и без него: 35 мс ожидания против 160–200, из которых сеть — 29. Почему сжатый HTML в 8,8 КБ приходит за один круг, сколько ресурсов браузер просит следом и почему каждый сторонний домен — это новое рукопожатие.

· · ·
#Серверы 5 мин

Умные железки в домашней сети: камера с каналом в облако и приставка, которая обновляется сама

Неизвестное устройство без открытых портов держало постоянный канал наружу — это была облачная камера. Почему такие камеры плохи устройством, расчёт своей записи без облака (150–300 ГБ в неделю, 5% ядра на камеру) и IPTV-приставка, которая сравнивает прошивки по принципу «отличается», а не «новее».

· · ·
#Серверы 3 мин

SSL: сертификат истёк, а сайт «работал» четыре дня

Покупные сертификаты продлеваются только руками, корень и www отдают разные сертификаты, неполная цепочка в браузере не видна. Еженедельный обход по сети, три проверки при установке и замена без перезапуска traefik.

· · ·

$ tail -f /blog

Не пропустите новые статьи

Пишу разборы по скорости сайтов, кэшу и разработке — на живых проектах и с цифрами. Подпишитесь, и ссылка на новую статью придёт сразу после выхода. Без рекламы и спама, отписаться — в один клик.

В Telegramодна кнопка «Старт» в боте

или на почту

связаться

Расскажите о задаче