nginx Linia żądania jest za duża

12

Pojawia się błąd:

Bad Request
Request Line is too large (6060 > 4094)

Kiedy uzyskuję dostęp do określonego adresu URL na moim serwerze w następujący sposób:

/api/categorize?packages=package1,package2,...packageN

Na nginx.conf mam:

large_client_header_buffers 8 16k;

client_header_buffer_size 8k;

Nie mogę znaleźć dokumentacji na ten konkretny problem, dokumenty dla large_client_header_buffers wspominają o 400 Błędnych żądaniach, ale zmieniają „large_client_header_buffers” z 4 8k; lub 8 8k; lub 8 16; nie naprawił problemu.

Rafael Barros
źródło
1
używasz tylko nginx czy jest to nakładka na gunicorn? ponieważ wygląda na to, że ten błąd pochodzi z gunicorn: sourcegraph.com/github.com/benoitc/gunicorn/symbols/python/…
powtórka
@ mauro.stettler Jest to nakładka na gunicorn. Jak zatem zwiększyć długość adresu URL w gunicorn?
Rafael Barros

Odpowiedzi:

16

Ten błąd wydaje się pochodzić z backendu Gunicorn, a nie z Nginx. Możesz zmienić jego limit, przekazując parametr --limit-request-linelub zestaw limit_request_line.

Możesz zobaczyć opis tutaj .

powtórna rozgrywka
źródło
3
Właśnie tego potrzebowałem.
PepperoniPizza