400 bad request nginx — как исправить ошибку


Ошибка 400 bad request nginx означает, что сделан неверный запрос.

Ошибка может возникать по разным причинам, всё зависит от используемой конфигурации и приложения.

Если речь идет о запросах к базе данных или API — причина может быть в работе бэкенда. Например, недостаточное количество знаков в  поле БД.


В случае если ошибка возникает при обращении к странице сайта — причина обычно в Nginx и размерах буферов, которые задаются в конфигурационных файлах.

Рассмотрим подробнее этот случай, он самый типичный.


Ошибка 400 bad request nginx


Объем заголовков в запросе может быть различным. Если он велик и лимит, установленный в конфигурации, не позволяет их обработать — возникнет ошибка.


Ошибка исправляется добавлением в секцию http конфигурационного файла nginx.conf следующей директивы:

large_client_header_buffers 2 12k;



Тестируем конфигурацию, убеждаемся в том, что ошибок в выводе нет

nginx -t



Затем перечитываем конфигурация веб-сервера чтобы он увидел новые директивы и значения паратетров.

nginx -s reload



Если параметры уже добавлены можно попробовать увеличить их значения, в 2, в 4 раза.

С каждой итерацией нужно тестировать конфигурацию с помощью nginx -t, перезапускать процесс nginx -s reload и проверять выполняя тот же запрос при котором была ошибка 400 bad request nginx.



Дополнительно можно проверить логи Nginx

less /var/log/nginx/error.log



Если ошибка возникает периодически — в логе доступа можно найти при помощи grep все случаи получения ответа 400 по уникальным характеристикам запроса: комбинации даты, времени, ip адреса клиента. Затем сопоставить данные с записями в error.log — логе ошибок.

В access.log будут запросы, которые выполнялись при обращении к сайту.



Пример запроса с кодом ответа 400 приведен на скриншоте:

400 bad request nginx


Также есть другие буферы Nginx, на которые стоит обратить внимание (ссылка на статью про буферы была выше). Особенно если сервер обслуживает нагруженный проект.


Читайте про конфигурацию веб-сервера Nginx: структуру файлов с настройками и контексты.

Сказать спасибо