Ошибки

ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH: что значит и как исправить

ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH — сервер указал в ответе две разные длины страницы, и Chrome не стал выбирать, какой из них верить. Исправить это может только владелец сайта.

Обновлено 08.10.2026≈ 6 мин чтения
Содержание 10

Что сделать прямо сейчас

Если вы просто открываете сайт:

  1. Нажмите кнопку «Перезагрузить» на странице ошибки.
  2. Если ошибка повторяется, исправить её может только владелец сайта. Сообщите ему адрес страницы и код ошибки ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH.

Если сайт ваш, переходите к разделам «Как проверить» и «Как исправить» ниже: там все команды по шагам.

Что значит ошибка

Вместе со страницей сервер присылает заголовки — служебные строки о ней. В строке Content-Length указана длина страницы в байтах: по ней браузер понимает, где страница заканчивается.

Если таких строк две и числа в них разные, непонятно, где кончается страница. По правилам HTTP такой ответ нужно отбросить, и Chrome его не принимает: показывает ошибку ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH. В исходном коде Chrome это ошибка -346.

Две строки с одинаковым числом Chrome принимает: в нашей проверке такая страница открылась без ошибки.

Как выглядит в Chrome

Заголовок — «Страница недоступна», под ним — «Сайт example.com отправил недействительный ответ.» Ниже — код ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH и кнопка «Перезагрузить».

Такой же текст Chrome показывает и при ошибке ERR_INVALID_HTTP_RESPONSE — различаются они только кодом.

Причины

  • Программа сайта ставит заголовок дважды. Например, код задаёт Content-Length сам, а библиотека или сервер, через которые он отдаёт страницу, может добавить ещё одну строку. Числа расходятся, если код посчитал длину неверно: Content-Length — это длина в байтах, а русская буква в кодировке UTF-8 занимает два байта.
  • Вторую строку добавляет nginx. Если в настройках есть строка add_header Content-Length, nginx не заменяет ею свою строку с длиной, а добавляет ещё одну.

Если программа сайта работает за nginx версии 1.23.0 или новее, её ответ с двумя строками Content-Length до посетителя не дойдёт. nginx не пропускает такой ответ, даже когда числа одинаковые: посетитель увидит ошибку 502 Bad Gateway, а в журнале ошибок nginx появится строка со словами upstream sent duplicate header line.

Как проверить

Шаг 1 выполните на своём компьютере: на Mac — в программе Терминал, в Windows — в командной строке. Если вы ни разу не открывали терминал, начните с инструкции Как открыть терминал: там всё по шагам. Скопируйте команду целиком, замените example.com на адрес своего сайта и нажмите Enter.

Шаг 1. Посмотрите заголовки ответа

На Mac:

curl -sS -D - -o /dev/null https://example.com/

В Windows:

curl -sS -D - -o NUL https://example.com/

Ключ -D - выводит на экран заголовки ответа, а -o /dev/null (в Windows — -o NUL) не сохраняет саму страницу. Если ошибка появляется не на главной, укажите в команде полный адрес нужной страницы.

Найдите строки Content-Length — curl может написать их маленькими буквами: content-length. Если таких строк две и числа в них разные, это и есть причина ошибки. Сам curl такой ответ принимает без сообщения об ошибке, поэтому смотрите именно на заголовки.

Шаг 2. Спросите программу сайта напрямую

Этот и следующий шаги выполняются на сервере. Если вы ещё не подключались к нему, начните с инструкции Как подключиться к VPS по SSH.

Если сайт работает через nginx, узнайте порт, на котором работает программа сайта:

sudo nginx -T 2>/dev/null | grep proxy_pass

В ответе будет строка вида proxy_pass http://127.0.0.1:3000; — число после двоеточия и есть порт. Если команда ничего не вывела, программа подключена к nginx иначе — например, PHP через fastcgi_pass, — тогда переходите к шагу 3.

Запросите страницу у программы напрямую, минуя nginx, — замените 3000 на свой порт:

curl -sS -D - -o /dev/null http://127.0.0.1:3000/

Если и здесь две строки Content-Length, их отдаёт сама программа сайта. Если строка одна, вторую добавляет nginx — переходите к шагу 3.

Шаг 3. Поищите заголовок в настройках nginx

sudo nginx -T 2>/dev/null | grep -iE 'configuration file|content-length'

Команда покажет пути к файлам настроек — строки configuration file — и строки, где упоминается Content-Length. Если среди них есть add_header Content-Length, это и есть вторая строка. Она записана в файле из ближайшей строки configuration file над ней.

Если вместо этой ошибки посетители видят 502 Bad Gateway, проверьте журнал ошибок nginx:

sudo grep 'duplicate header line' /var/log/nginx/error.log

Строки со словами upstream sent duplicate header line значат, что программа сайта прислала nginx какой-то заголовок дважды. Название заголовка указано в той же строке, в кавычках. Версию nginx покажет команда nginx -v.

Как исправить

В программе сайта

Оставьте только одно место, где задаётся Content-Length. Проще всего не задавать его в коде вовсе: длину посчитает библиотека или сервер, через которые программа отдаёт страницу. Если длину нужно указать вручную, считайте её в байтах, а не в символах.

После правки перезапустите программу и повторите шаг 1: строка Content-Length должна остаться одна.

В настройках nginx

Откройте файл, который вы нашли на шаге 3, — например, командой sudo nano /etc/nginx/sites-available/example.com. Удалите строку add_header Content-Length: длину ответа nginx указывает сам.

Сохраните файл — Ctrl+O, Enter, затем Ctrl+X — и проверьте настройки:

sudo nginx -t

В ответе должны быть слова syntax is ok и test is successful. Если вместо них сообщение об ошибке, в нём указаны файл и номер строки: исправьте строку и проверьте снова. Когда проверка прошла, примените настройки:

sudo systemctl reload nginx

Если команда ничего не ответила, настройки применены. Затем повторите шаг 1.

На обычном хостинге

Если вы сами задавали заголовок Content-Length — в файле .htaccess или в коде сайта, — уберите его. Если не задавали, напишите в поддержку хостинга адрес страницы и код ошибки ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH.

Соседние ошибки

ОшибкаЧем отличается
ERR_INVALID_HTTP_RESPONSEТот же текст на странице ошибки, но сервер ответил не по протоколу HTTP
ERR_CONTENT_LENGTH_MISMATCHСтрока Content-Length одна, но данных пришло меньше, чем в ней указано
502 Bad GatewayТак отвечает nginx 1.23.0 и новее, если программа сайта прислала ему Content-Length дважды

Источники

Проверено в Chrome 155 на локальном тестовом сервере 8 октября 2026 года.

Сверено 8 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 08.10.2026