nginx gzip

천영석·2021년 8월 11일
2

js의 파일 크기가 커서 로드 속도를 줄일 필요가 생겼다. 그래서 gzip으로 압축하려고 nginx에 설정을 해주었다.

이전에 인터넷을 보면서 알아본 속성은 아래와 같다.

  gzip on;            // 압축 on
  gzip_static on;     // 서버에 이미 압축된 gz파일이 있다면 압축하지 않고 
                      // 해당 gz 파일을 보내주는 것으로 따로 모듈 설치가 필요하다.
  gzip_vary on; 
  gzip_min_length 10240;  // 압축을 시작하는 최소 크기 (난 10kb로 했다.)
  gzip_proxied any;   // 프록시 요청에 대한 응답의 압축을 활성화하는 속성으로 any는 
                      // 모든 프록시 요청에 대해 압축을 활성화하는 것이다. 
                      // no-cache, no-store와 같이 특정 속성을 정해줄 수 있다.
  gzip_comp_level 9;  // 압축 레벨(2 이상부터는 사실 다 비슷하다고 한다. 
                      // 압축률이 높아지는 대신 cpu를 많이 사용한다.)
  gzip_buffers 16 8k; // 버퍼는 기본 속성이 16 8k | 32 4k이다. 뭔지 잘 모르겠다.
  gzip_types text/plain  // 기본으로 html은 해주지만 js는 해주지 않는다. 
             text/css    // 여기에 명시한 타입들만 압축이 실행된다.
             text/javascript
             text/xml
             application/javascript
             application/json
             application/xml
             image/svg+xml
             image/svg;

이와 같은 속성들이 있었고, 결국 내가 적용한 속성은 아래와 같다.

  gzip on
  gzip_min_length 10240
  gzip_comp_level 6
  gzip_vary on
  gzip_types text/plain 
             text/css
             text/javascript
             text/xml
             application/javascript
             application/json
             application/xml
             image/svg+xml
             image/svg

모두 적용하지 않은 이유

  • gzip_static - static_module을 설치해야 한다고 한다. 나중에 해보려고 한다.
  • gzip_buffers - default 값이 있기도 하고, 아직 버퍼에 대해서는 잘 모르기 때문에 일단을 넘어갔다.
  • gzip_proxied - 이건 우리 상황에서 필요하지 않다고 판단
profile
느려도 꾸준히 발전하려고 노력하는 사람입니다.

1개의 댓글

comment-user-thumbnail
2021년 8월 18일

깔끔한 정리 감사합니다 :) 잘 참고할게요!

답글 달기