Может еще кому-то интересно.
Были такие же 502-е ошибки причем группами по 5-10 запросов подряд (один и тот же url), довольно часто, могло быть несколько раз в минуту, но абсолютно бессистемно. php-fpm подключается через сокет.
Не помогло разделение на пулы, ошибки появлялись почти так же часто,причем подряд на нескольких пулах с выдачей сообщения в конце типа "no live upstreams".
Начал копать дальше, думал не хватает дескрипторов открытых файлов.
Поставил ulimit -n 10000 (дефолтовое значение оказалось 1024, в любом случае мало), сильно ничего не поменялось.
Потом случайно где-то попалось упоминание, про backlog. В конфиге стоит -1, по идее php-fpm должен брать значение из sysctl, но где-то встречал на форуме сообщение, что он это может неправильно делать.
Поставил backlog 4096 на каждый пул, ночь прошла - пока полет нормальный, ни одной ошибки...
По логике вещей 502 ошибка появляется пр переполнении очереди (backlog) на сокете, единственное, чего я не мог предположить, так это неправильную трактовку -1.
P.S. К стати, какой параметр в sysctl задает backlog? somaxconn ? Проверял через su, sysctl -a показывает somaxconn огромный (по сравнению с 4096).