nginx 설정 client header 의 크기 와 400 오류

2099 단어 nginx
nginx 의 기본 헤더 길이 상한 선 은 4k 입 니 다. 이 값 을 초과 하면

header ,nginx 400
2 nginx header client_header_buffer_size 16k; large_client_header_buffers 4 16k;
 nginx  header    :
  • 요청 을 먼저 처리 하 는 requestline, 그 다음은 requestheader。
  • 이 두 가지 buffer 배분 전략 은 같다.
  • 클 라 이언 트header_buffer_size 설정 의 값 은 buffer 를 분배 합 니 다. 만약 분 배 된 buffer 가 request 를 수용 할 수 없다 면line/request_header, 그러면 다시 largeclient_header_buffers 설정 매개 변수 할당 largebuffer, 만약 largebuffer 를 수용 할 수 없 으 면 414 (request line 처리) / 400 (request header 처리) 오 류 를 되 돌려 줍 니 다.
  • 요청 한 헤더 가 크다 면 client 를 사용 해 야 합 니 다.header_buffer_size, 이렇게 하면 메모리 분 배 를 한 번 줄 일 수 있 습 니 다.
  • 요청 중 소량의 요청 헤더 만 크다 면 large 를 사용 해 야 합 니 다.client_header_buffers, 이 는 큰 header 를 처리 할 때 만 더 많은 공간 을 분배 하여 불필요 한 메모리 공간 낭 비 를 줄 일 수 있 기 때 문 입 니 다.

  • get 요청 에 대해 요청 문자열 이 너무 긴 문 제 를 해결 합 니 다:
    get 요청 에 대하 여 우 리 는 다른 두 설정 을 수정 하여 요청 문자열 의 긴 문 제 를 해결 할 수 있 습 니 다: clientheader_buffer_size 문법: clientheader_buffer_size size 기본 값: 1k 사용 필드: http, server 이 명령 은 클 라 이언 트 가 요청 한 http 헤드 버퍼 크기 를 지정 합 니 다. 대부분 상황 에서 머리 요청 의 크기 는 1k 보다 크 지 않 지만 wap 클 라 이언 트 에서 온 큰 쿠키 가 있 으 면 1k 보다 클 수 있 습 니 다. Nginx 는 더 큰 버퍼 에 분 배 됩 니 다. 이 값 은 largeclient_header_buffers 안에 설정 되 어 있 습 니 다.large_client_header_buffers 문법: largeclient_header_buffers number size 기본 값: largeclient_header_buffers 4 4k / 8k 사용 필드: http, server 명령 은 클 라 이언 트 가 요청 한 비교적 큰 헤더 파일 을 버퍼 의 최대 값 으로 지정 합 니 다. 요청 한 URI 크기 가 이 값 을 초과 하면 서버 는 'Request URI too large' (414) 를 되 돌려 줍 니 다. 마찬가지 로 요청 한 머리 필드 가 이 값 보다 크 면 서버 는 'Bad request' (400) 를 되 돌려 줍 니 다.버퍼 는 수요 에 따라 분 리 됩 니 다.기본 버퍼 크기 는 운영 체제 의 페이지 파일 크기 입 니 다. 보통 4k 또는 8k 입 니 다. 연결 요청 이 상 태 를 keep - alive 로 변환 하면 이 버퍼 는 풀 립 니 다.http header 의 크기 를 수정 하면 get 요청 문자열 이 너무 긴 문 제 를 해결 할 수 있 는 이 유 는 http 프로 토 콜 의 get 요청 부터 시작 해 야 합 니 다. 사실 GET 가 제출 하면 요청 한 데 이 터 는 URL 뒤에 첨부 됩 니 다 (HTTP 프로 토 콜 헤더 에 데 이 터 를 두 는 것 입 니 다).

    좋은 웹페이지 즐겨찾기