Nginx 의 proxy cache gzip br 압축 처리

2362 단어 nginx
실험 환경
  • Nginx 1.15.8 (sb-nginx debian package)
  • 백 엔 드 는 Cloudflare (즉, 압축 되 지 않 은 데이터 나 gzip br 압축 데 이 터 를 되 돌려 주 는 것 을 지원 합 니 다)
  • 프 록 시 cache 를 설정 하고 cache key 를 $host $uri
  • 로 설정 합 니 다.
    과정 및 결과
    Nginx 의 기본 동작
  • Chrome 에서 요청 을 보 냈 습 니 다. accept encoding 은  gzip, deflate, br
  • Nginx 리 트 윗 소스, br 압축 데 이 터 를 되 돌려 주 고 헤더 vary accept encoding
  • 을 추가 합 니 다.
  • Nginx 캐 시 br 데 이 터 를 압축 하고 vary header 를 존중 합 니 다. 이 캐 시 는 accept encoding header 만 설정 합 니 다.  gzip, deflate, br  의 클 라 이언 트 가 사용 하지 않 으 면 다시 원본 으로 돌아 가 야 합 니 다
  • curl 에서 요청 을 보 내 고 압축 을 지원 하지 않 으 며 accept encoding 이 비어 있 습 니 다
  • Nginx 리 셋
  • curl - H accept header 를  gzip, br 이 header 성명 은 br 를 지원 하지만 캐 시 gzip, deflate, br 와 다 르 고 원본 으로 돌아 갑 니 다
  • 이상 gzip 동 리
  • 최적화 방안 1. 원본 을 압축 하지 않 고 캐 시 에 압축 되 지 않 은 파일 입 니 다. 요청 시 Nginx 에서 필요 에 따라 gzip 또는 br 압축 을 진행 합 니 다.
  • 설정 을 통 해  proxy_set_header Accept-Encoding "";  클 라 이언 트 accept encoding 을 덮어 서 원본 으로 돌아 갈 때 백 엔 드 를 압축 되 지 않 은 파일 로 되 돌려 줍 니 다.배치 하 다.  proxy_ignore_headers Vary;  vary 헤더 무시
  • 설정  brotli on; gzip on; gzip_vary on;  nginx 단 압축 사용 하기
  • Chrome 은 br 압축 을 지원 해 달라 고 요청 하 였 으 며, 첫 번 째 원본 으로 돌아 가 br 압축 후 데이터
  • 를 되 돌려 주 었 습 니 다.
  • curl 요청 은 압축 을 지원 하지 않 습 니 다. 캐 시 에서 압축 되 지 않 은 파일 을 가 져 와 되 돌려 줍 니 다
  • curl 요청 accept encoding 을 gzip 으로 설정 하고 캐 시 에서 압축 되 지 않 은 파일 을 가 져 와 gzip 압축 후 파일
  • 을 되 돌려 줍 니 다.
    최적화 방안 2. 리 소스 는 모두 gzip 압축 을 받 아들 이 고 캐 시 gzip 압축 후 파일 입 니 다. 요청 시 필요 에 따라 gzip 압축 을 풀 수 있 습 니 다.
    (단점 은 br 를 지원 하지 않 는 다 는 것 이다. nginx 는 현재 gunzip 와 같은 압축 해제 br 모듈 이 없 기 때문이다.)
  • 설정 을 통 해  proxy_set_header Accept-Encoding "gzip";  클 라 이언 트 accept encoding 을 덮어 서 원본 으로 돌아 갈 때 백 엔 드 를 gzip 압축 파일 로 되 돌려 줍 니 다.배치 하 다.  proxy_ignore_headers Vary;  vary 헤더 무시
  • 설정 gzip off; brotli off; gzip_vary off;, 설정  gunzip on;  수요 에 따라 압력 을 풀다.
  • Chrome 은 gzip 압축 지원 을 요청 합 니 다. 첫 번 째 원본 으로 돌아 가 백 엔 드 서버 (내 nginx 가 아 닌) gzip 압축 후 데 이 터 를 캐 시 합 니 다
  • curl 요청 은 압축 을 지원 하지 않 습 니 다. 캐 시 에서 gzip 압축 을 가 져 온 후 파일 을 압축 해제 하고 되 돌려 줍 니 다
  • 잘 쓰 여 있 지 않 습 니 다. 방금 만들어 진 것 이기 때문에 친구 들 의 질문 을 해결 할 수 있 을 것 입 니 다. 문제 가 있 으 면 계속 아래 에 보 낼 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기