Как установить допустимую длину URL-адреса для запроса nginx (код ошибки: 414, слишком большой uri)

Я использую Nginx перед 10 mongrels.

Когда я делаю запрос размером более 2900, я возвращаю:

код ошибки 414: слишком большой uri

Кто-нибудь знает настройку в файле конфигурации nginx, который определяет допустимую длину uri?

Ответ 1

От: http://nginx.org/r/large_client_header_buffers

Синтаксис: large_client_header_buffers number size ;
По умолчанию: large_client_header_buffers 4 8k;
Контекст: http, server

Устанавливает максимальные number и size буферы, используемые для чтения большого заголовка запроса клиента. Строка запроса не может превышать размер одного буфера, иначе клиенту возвращается ошибка 414 (Request-URI Too Large). Поле заголовка запроса не может превышать размер одного буфера, или ошибка клиента (Bad Request) возвращается клиенту. Буферы распределяются только по требованию. По умолчанию размер буфера равен 8 Кбайтам. Если после завершения обработки запроса соединение переходит в состояние keep-alive, эти буферы освобождаются.

поэтому вам нужно изменить параметр размера в конце этой строки на нечто большее для ваших нужд.

Ответ 2

Для тех, у кого есть проблемы с этим на https://forge.laravel.com, мне удалось заставить это работать, используя компиляцию SO ответов;

Вам понадобится пароль sudo.

sudo nano /etc/nginx/conf.d/uploads.conf

Заменить содержимое следующим текстом;

fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;

client_max_body_size 24M;
client_body_buffer_size 128k;

client_header_buffer_size 5120k;
large_client_header_buffers 16 5120k;