Главным образом, чтобы опубликовать это как метод резиновой утки и для моего будущего себя.
У нас есть сервер RHEL 7.4 под управлением Apache 2.4 (httpd24-httpd-2.4.27-8.el7.x86_64) с mod_php (без php-fpm). Сегодня внезапно около 20 наших серверов начали выходить из строя в нашем приложении PHP с php_network_getaddresses: getaddrinfo fail :. Делать systemctl restart httpd24-httpd
решает проблему, (перезагрузка не (opcache). Если я контролирую разрешение DNS с tcpdump -i eth0 -vvv -nn udp port 53
Я даже не вижу поиска DNS, но я вижу других. Похоже, что Apache даже не делает DNS-запросы, которые хочет PHP. Эти серверы ежедневно перезагружались и все включались около 7 утра или позже, поэтому они не работали так долго (не какое-то наращивание) и нормально работали в течение нескольких месяцев.
Сейчас наша главная проблема заключается в том, что наши производственные серверы работают с одним и тем же стеком, и, хотя производство было нормальным, я хочу избежать этой проблемы до производства.
Почему Apache внезапно прекратил поиск DNS? (Он даже не попадает в / etc / hosts)
Я связал эту проблему с тем, что было произведено исправление системы, обновлен glibc и процессы (и система) не были перезагружены. Я перезагрузил службу httpd, и DNS-поиск снова заработал. Я подозреваю, что это как-то связано со старым glibc, который все еще находится в памяти вместе с битами нового glibc.
Других решений пока нет …