У меня есть файл PHP, генерирующий большой объем JSON (~ 1,5 МБ) через сервер Nginx и PHP-FPM, работающий на macOS.
Иногда (около 2% запросов) выводимый JSON оказывается поврежденным. Длина тела всегда одинакова, но похоже, что различные блоки байтов (возможно, разной длины) переупорядочиваются, что приводит к повреждению.
Случайное повреждение никогда не происходит, если:
Случайное повреждение все еще происходит, когда:
readfile
статический файл JSON, а не динамическое создание самого JSON.В журналах Nginx или PHP-FPM ошибок нет, все остальное вроде работает нормально. Nginx и PHP были установлены через Homebrew, обычно настроены aer и являются последними версиями (хотя я имел дело с этим повреждением около года):
версия nginx: nginx / 1.17.3
PHP 7.1.23 (fpm-fcgi) (построено: 22 февраля 2019 г., 22:19:35)
Как я могу это отладить или есть какая-то конфигурация, которую я могу попробовать, исправит ли она это?
Я не уверен, почему, но мне удалось решить проблему, переключившись на сокеты Unix через TCP для соединения FastCGI. Похоже, где-то есть ошибка, но я не знаю, кто виноват!