문제

내 아파치 웹 서버의 기본 설정이있는 바니시가 있습니다.8080 및 Varnish Listing 80.

에 아파치 목록

크기가 100MB, 500MB 및 1GB

와 함께 웹 사이트에 다운로드 가능한 파일이 거의 없습니다.

1GB가 작동하지 않습니다.이를 클릭하면 서버가 닫을 수 없거나 연결을 닫을 수 없습니다.다른 두 사람은 잘 작동하지만 이것이 올바른 방법인지 확실하지 않습니다.

이러한 파일을 바이 패스하고 웹 서버에서 직접 가져 오는 방법은 무엇입니까?

고맙습니다.

도움이 되었습니까?

해결책

백엔드 응답에서 Content-Length의 검사를 통해 수행 할 수 있으며 일부 크기보다 크면 일부 마크 및 restart 요청 트랜잭션으로 태그를 지정합니다.

콘텐츠 길이가있는 파일>= 10,000,00을 배관해야합니다.

sub vcl_fetch {
..
  if ( beresp.http.Content-Length ~ "[0-9]{8,}" ) {
     set req.http.x-pipe-mark = "1";
     return(restart);
  }
..
}
.

다음 우리는 요청 받고 구문 분석을 확인하기 위해 돌아 왔습니다. 여기서 우리는 마크를 확인하고 pipe를 수행 할 수 있습니다

sub vcl_recv {
..
  if (req.http.x-pipe-mark && req.restarts > 0) {
    return(pipe);
  }
..
}
.

다른 팁

In varnish 4, vcl_fetch should be replaced with vcl_backend_response, see https://www.varnish-cache.org/docs/trunk/whats-new/upgrade-4.0.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top