~ / blog

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

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

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

TLS 1.3: рукопожатие за один круг и куда уходят 128 миллисекунд

Client Hello с половиной ключа, ответ сервера с сертификатом, подписью и Finished — и сразу запрос. Почему из 128 мс сеть заняла 29, а остальное — подпись ключом RSA 4096 на старом процессоре, что такое X25519MLKEM768 и почему сервер выбрал ChaCha20 вместо AES.

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

DNS дома: одна запись на всю зону, резолвер по замеру и заглушка, сломавшая приставку

match-subdomain на MikroTik отвечает за все поддомены сразу — и не даёт сделать исключений. Замер семи резолверов: один и тот же Google по-разному отвечает через обычный DNS и через HTTPS. И как адрес страницы-заглушки провайдера попал в список роутера и сломал IPTV-приставку.

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

Сеть Docker: имя базы перехватывает домен, а сайт не видит сам себя

Сетевой псевдоним базы с именем домена в общей сети уводит запросы соседей к сайту в MariaDB. Запрос из контейнера к своему же домену не проходит — ходить в nginx по имени контейнера с Host и X-Forwarded-Proto. Как проверить свою сеть.

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

Смотреть свой трафик: tcpdump и Wireshark без страха

Снимаем один запрос к сайту целиком — DNS, рукопожатие, TLS — и разбираем, что в HTTPS видит сторонний наблюдатель: адрес, имя сайта из SNI, размеры и время. Что спрятано: путь страницы, куки, содержимое и даже сертификат. Фильтры захвата против фильтров отображения и пять фильтров на каждый день.

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

Переезд 14 сайтов на домашний сервер: ловушки, которые молча портят результат

Переменные одного сайта утекли в другой, chown сломал MariaDB, импорт шёл со скоростью 45 КБ/с из-за буферного пула, кракозябры на Bitrix оказались правами на конфиг, а кэш миниатюр пересобирался на каждом запросе. И главный урок: копия должна быть один к одному.

· · ·
#WordPress 4 мин

Частичное обновление затирает поля ACF: ID → URL → 0 за два обмена

Импорт сливал get_field со свежими данными и писал обратно update_field: файл с выводом «URL» за два обмена превращался в 0. Сырые значения приходят с ключами полей — наивный патч перестал обновлять цены. Там же цвет массивом и фатал trim() на главной.

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

TCP-рукопожатие на живом захвате: SYN, SYN-ACK, ACK

Снимаем tcpdump один запрос к сайту и разбираем каждую строку: флаги, номера байтов, MSS 1460, масштаб окна. Рукопожатие заняло 29,2 мс — ровно один круг по сети, и почему сервер присылает ответ пачками.

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

Стенд как копия прода: traefik 2 не видит Docker 29, а stop не выключает

Повторили схему боевого сервера дома — и прокси не увидел ни одного сайта: traefik 2 ходит в Docker API 1.24, а Docker 29 принимает от 1.40. HostRegexp в traefik 3, compose без имени проекта, который гасит соседей, restart: always против stop и сторож, без которого ofelia не видит новые сайты.

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

Два Redis с противоположными настройками: объектный кэш и кэш фрагментов

Объектному кэшу WordPress — вытеснение и без записи на диск: любой ключ восстановим запросом к базе. Кэшу фрагментов — noeviction и журнал на диске: потерянная ячейка стоит посетителю секунд. Подвох с transients и как поднять потолок без потери кэша.

· · ·

$ tail -f /blog

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

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

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

или на почту

связаться

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