문제 상황
- GET 요청에 query가 길어지면서, URI가 길어지니 Nginx에서 414 URI Too Large가 발생했다.
원인 분석
- Nginx에는
large_client_header_buffers number size
설정값이 존재한다. - 요청 헤더를 읽을 때 사용할 버퍼의 개수와 크기를 설정한다.
- request line이 버퍼 하나의 크기를 초과하면 414 응답이 발생한다.
- requet line: 요청 메시지의 첫번 째 줄
- 예시:
GET /software/htp/cics/index.html HTTP/1.1
- 예시:
- requet line: 요청 메시지의 첫번 째 줄
- 요청 헤더가 버퍼 하나 크기를 초과하면 400 응답이 발생한다.
- 기본값은 number=4, size=8k 다.
해결 방법
large_client_header_buffers
설정 값을 조절하여 해결한다.