ngx_pagespeed и IPv6

TL;DR: проверяйте, блеать, конфиги аккуратно!

К делу…

На днях на одной из ВПСок случилось колдунство: ни с того ни с сего перестал работать ngx_pagespeed, до этого исправно оптимизировавший* все это дело.

Из нагрузки на ВПСке два сайтика тестовых, на KVS и на SmartCJ (ну вы понели ;) )

И вот на одном из них (который первый в конфиге Nginx) напрочь отрубило ngx_pagespeed, на втором же было всё ок.

В логах пестрило вот такими ошибками:

 [ngx_pagespeed 1.12.34.2-0] https://domain1.com/blabla/img/blabla.jpg (connecting to:localhost):0:serf_context_run error status=111 (Connection refused)

Далее, через сутки, после долгого красноглазания в strace и перебору параметров по одному были найдены любопытные вещи:

1. На сервере незадолго до того был убран приоритет для IPv4 в связи с окончательной поддержкой IPv6 от хостера.
2. В ОС Ubuntu дефолтные корневые сертификаты сидят в файле /etc/ssl/certs/ca-certificates.crt
3. Оба сайта используют принудительный SSL, включая HSTS.

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

Завораживающего детектива не вышло.

Ну начали тестить. Заставили nginx гонять только один процесс, чтобы проще ловить PID. Начали strace-ить. Ну что, видим, что оно хочет читать корневые сертификаты, ибо SSL же. А по дефолту ngx_pagespeed ищет их в /etc/ssl/cert.pem (вроде у старика Debian-а именно там они и лежат). Поправили это дело, но не выходит каменный цветок.

Дальше, видим что pagespeed делает запросы на оригиналы, ломясь в IPv6 адрес. Ну это просто, телнетим на IPv6 на порт 443 и сервак отзывается как положено. На всяк случай проверили домены с субдоменами, у всех чинно и благородно прописаны AAAA записи. А по strace-у выходит, что connection refused.

И только сверка построчно конфигов сайта А и Б дала причину, глупую и обидную: в конфиге сайта А nginx не слушал IPv6 для этих доменов.

Рукалицо.

P.S. Снова словил проблему на том же месте, ВПСка после перезагруза получила новый IPv6 от хостера. Там только так, DHCP и прочее. Запись же АААА не поменяли в DNS. Пляски с бубном, strace, проблема найдена. Красноглазие.