Заметил ошибку 400 (Request Header Or Cookie Too Large), при переходе на один из моих сайтов посредством поиска в Яндексе. Судя по тому, что пишут бывалые в этих ваших Интернетах, то сталкивались многие. Однако не многие постарались объяснить, что это на самом деле и как исправить.
Суть ошибки оказалась до смешного проста. При переходе из поисковых результатов Яндекса, браузер тянет на сайт огромное количество лишней инфы, в частности длинную реферальную ссылку, которая иногда превышает лимит сервера на заголовки. Решается следующим способом:
Редактируем файл: /etc/nginx/nginx.conf
Добавляем примерно следующие строки:
## Максимальный размер буфера для хранения тела запроса клиента
client_body_buffer_size 16k;
## Максимальный размер буфера для хранения заголовков запроса клиента
client_header_buffer_size 16k;
## Максимальный размер тела запроса клиента, прописанный в поле Content-Length заголовка. Если сервер должен поддерживать загрузку файлов, это значение необходимо увеличить
client_max_body_size 10m;
## Количество и размер буферов для чтения большого заголовка запроса клиента
large_client_header_buffers 4 16k;
## Таймаут при чтении тела запроса клиента
client_body_timeout 10;
## Таймаут при чтении заголовка запроса клиента
client_header_timeout 10;
## Таймаут при передаче ответа клиенту
send_timeout 10;
Делаем перезагрузку конфигурации:
root@server:~# /etc/init.d/nginx reload