Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
Apache Error: AH01068: Got bogus version 0 while reading FastCGI record header Linux / DevOps

Apache Error AH01068: Got bogus version 0 FastCGI record — Решение

Обновлено: 18.08.2026  ·  Официальная база знаний

Клиент получает ошибку 503 Service Unavailable или 502 Bad Gateway при запросе динамических PHP-страниц. В системном журнале error.log регистрируется нарушение протокола: [proxy_fcgi:error] [pid 1234:tid 5678] [client ...] AH01068: Got bogus version 0 while reading FastCGI record header (perhaps not a FastCGI backend) или Got bogus version 72.

Симптом в логеЧто ожидал ApacheЧто реально ответил бэкенд
Got bogus version 0FastCGI бинарный фрейм (Record Version 1)Пустой ответ, TCP RST или raw HTTP payload
Got bogus version 72 ('H')FastCGI протоколТекстовый HTTP ответ (HTTP/1.1 200 OK — буква 'H' имеет код 72)
Got bogus version 60 ('<')FastCGI протоколHTML страница ошибки (символ <html> имеет код 60)
  • Apache не может распознать ответ upstream-сервера, так как протоколы взаимодействия не совпадают.
  • Ошибка возникает при путанице модулей proxy_http и proxy_fcgi или отправке FastCGI-запроса на обычный HTTP-порт.
  1. Проверьте, какой именно бэкенд указан в директиве ProxyPass. Если сервис является стандартным HTTP сервером (Node.js, Go, Python), используйте протокол http://, а НЕ fcgi://:
    # ДЛЯ ОБЫЧНЫХ HTTP СЕРВИСОВ (Используйте proxy_http):
    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/
  2. Если вы проксируете запросы к PHP-FPM, убедитесь, что используется правильный синтаксис proxy_fcgi и целевой порт действительно является FastCGI сокетом (а не HTTP):
    # ДЛЯ PHP-FPM ЧЕРЕЗ TCP СОКЕТ:
    <FilesMatch \.php$>
        SetHandler "proxy:fcgi://127.0.0.1:9000"
    </FilesMatch>
    
    # ДЛЯ PHP-FPM ЧЕРЕЗ UNIX СОКЕТ:
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php/php-fpm.sock|fcgi://localhost"
    </FilesMatch>
  3. Убедитесь, что на целевом порту (например, 9000) запущен именно демон PHP-FPM, а не другой веб-сервер (например, Nginx или php-cli built-in server).
  4. Проверьте права на UNIX сокет PHP-FPM в /etc/php/8.x/fpm/pool.d/www.conf:
    listen.owner = www-data
    listen.group = www-data
    listen.mode = 0660
  5. Перезапустите PHP-FPM и Apache:
    sudo systemctl restart php8.2-fpm
    sudo systemctl restart apache2
Ключевая подсказка (ASCII кодировка): Число в тексте ошибки AH01068 указывает на первый байт ответа сервера. Версия 72 соответствует символу H (бэкенд ответил обычным HTTP-протоколом HTTP/1.1 вместо бинарного FastCGI), а версия 60 соответствует < (сервер вернул XML/HTML документ).
Практический опыт инженера: Популярная ошибка: проксирование запроса на порт `8080` другого контейнера через `proxy:fcgi://` вместо `proxy:http://`. Всегда проверяйте протокол прикладного уровня.

Частые вопросы (FAQ)

Что такое FastCGI Record Header?

Это 8-байтовый бинарный заголовок пакета протокола FastCGI. Первый байт заголовка строго обязан содержать версию протокола FastCGI (константа FCGI_VERSION_1 = 1).

Почему PHP-FPM может вернуть 'bogus version 0'?

Это происходит, если рабочий процесс PHP-FPM упал по сегфолту (SIGSEGV) или был убит OOM Killer в момент начала отправки ответа, закрыв сокет с нулевым телом.

Как проверить, что порт слушает именно FastCGI, а не HTTP?

Попробуйте выполнить curl http://127.0.0.1:9000/. FastCGI сервер вернет бинарный мусор или разорвет соединение, а HTTP-сервер вернет читаемый заголовок HTTP/1.1.

Можно ли проксировать статические файлы через proxy_fcgi?

Нет, через mod_proxy_fcgi должны передаваться строго файлы скриптов (.php), а статичные файлы (CSS/JS/изображения) Apache должен отдавать самостоятельно силами модуля core.