Node.js 서버 에서 Gzip 압축 튜 토리 얼 열기

4367 단어 Node.jsGzip
Gzip 이 뭐 예요?
대신 들 의 설명 을 복사 하 라.
GZIP 은 최초 로 Jean-loup Gailly 와 Mark Adler 가 만 들 었 으 며 UNIX 시스템 의 파일 압축 에 사용 되 었 다.우 리 는Linux에서 접미사 가 gz 인 파일 을 자주 사용 하 는데 그것 이 바로 GZIP 형식 이다.지금 은 인터넷 에서 매우 보편적 인 데이터 압축 형식 이나 파일 형식 이 되 었 다.HTTP 프로 토 콜 의 GZIP 인 코딩 은 WEB 응용 프로그램의 성능 을 개선 하 는 기술 입 니 다.대 유량 의 WEB 사 이 트 는 종종 GZIP 압축 기술 을 사용 하여 사용자 로 하여 금 더욱 빠 른 속 도 를 느끼 게 한다.이것 은 일반적으로 WWW 서버 에 설 치 된 기능 을 말 합 니 다.누군가가 이 서버 에 있 는 사 이 트 를 방문 할 때 서버 에 있 는 이 기능 은 웹 페이지 내용 을 압축 하여 방문 하 는 컴퓨터 브 라 우 저 에 전송 합 니 다.일반적으로 일반 텍스트 내용 은 원래 크기 의 40%로 압축 할 수 있 습 니 다.이렇게 전송 하면 빠 릅 니 다.효 과 는 인터넷 주 소 를 클릭 하면 바로 표 시 됩 니 다.물론 서버 의 부하 도 증가 합 니 다.일반 서버 에는 이 기능 모듈 이 설치 되 어 있 습 니 다.
Gzip 압축 률
예 를 들 어 웹 팩 을 통 해 포 장 된 js 파일 이 비교적 크다.비록 우 리 는 chunk 기능 을 이용 하여 파일 을 분리 하여 혼동 하여 포장 할 수 있 지만 전체 부 피 는 작 지 않다.이때 gzip 압축 효 과 를 살 펴 보 자.

Gzip 사용 하기 전

Gzip 사용 후
그 중 세 개의 파일 의 앞 뒤 압축 크기 를 비교 합 니 다.
텍스트 클래스 파일:
iview.min.js:429 kb->109 kb,압축 비 74.6%base.min.js:309 kb->81.7kb,압축 비 73.56%style.min.css:207 kb->30.9kb,압축 비 85%
그림:
그림 1:63.2kb->63.2kb,압축 비 0%?
우 리 는 텍스트 류 파일 의 압축 효과 가 매우 현저 한 것 을 보 았 으 나 그림 의 부 피 는 변 하지 않 았 다.텍스트 클래스 의 http 응답 헤드 를 보십시오.gzip 압축 이 있 습 니 다.

그림 의 없 음:

이 는 일반적으로 그림(png,jpg 등)에 gzip 을 사용 하 는 효과 가 좋 지 않 고 심지어 반대로 되 기 때문에 그림 을 gzip 압축 하지 않 는 것 을 기본 으로 합 니 다.
gzip 사용 하기
다음은 node 의 express 프레임 워 크 가 gzip 를 어떻게 사용 하 는 지 알려 드 리 겠 습 니 다.
1.compression 의존 도 를 설치 합 니 다.npm install compression2.호출:

var compression = require('compression')
var app = express();

//           compression
app.use(compression());
기본 적 인 사용 은 이렇게 하면 ok 입 니 다.또한 일부 요청 에 만 이 기능 을 사용 하려 면 필터 방법 을 사용 할 수 있 습 니 다.

app.use(compression({filter: shouldCompress}))

function shouldCompress (req, res) {
 if (req.headers['x-no-compression']) {
  //             'x-no-compression'
  return false
 }

 return compression.filter(req, res)
}
기타 기능 은 compression문서.을 참고 하 세 요.
nginx 설정 추가

#on   ,off   
gzip on;

#              ,      header   Content-Length     。    0,         。       1k    ,  1k       。
gzip_min_length 1k;

#              ,‘4 16k'   16k*4     
gzip_buffers 4 16k;

#gzip   (1~9),        ,        ,        
gzip_comp_level 5;

#    MIME    ,  'text/html'       
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;
매개 변 수 를 간단하게 설명 하 다.
1) gzip
문법:gzip on/off
기본 값:off
역할 영역:http,server,location
설명:gzip 모듈 을 열거 나 닫 습 니 다.여기 서 on 을 사용 하면 시작 을 표시 합 니 다.
2) gzip_min_length
문법:gzipmin_length length
기본 값:gzipmin_length 0
역할 영역:http,server,location
설명:압축 을 허용 하 는 페이지 의 최소 바이트 수 를 설정 하고 페이지 바이트 수 는 header 머리 에 있 는 Content-Length 에서 가 져 옵 니 다.기본 값 은 0 입 니 다.페이지 가 아무리 압축 되 더 라 도.1k 이상 의 바이트 수 를 설정 하 는 것 을 권장 합 니 다.1k 이하 일 수록 눌 릴 수 있 습 니 다.|
3) gzip_buffers
문법:gzipbuffers number size
기본 값:gzipbuffers 4 4k/8k
역할 영역:http,server,location
설명:gzip 의 압축 결과 데이터 흐름 을 저장 하기 위해 시스템 에서 몇 개의 캐 시 를 가 져 옵 니 다.4 16k 대 표 는 16k 단위 로 원시 데이터 크기 에 따라 16k 단위 의 4 배 신청 메모리 입 니 다.
4) gzip_comp_level
문법:gzipcomp_level 1..9
기본 값:gzipcomp_level 1
역할 영역:http,server,location
설명:gzip 압축 비,1 압축 비 최소 처리 속도 가 가장 빠 르 고 9 압축 비 는 가장 크 지만 처리 가 가장 느리다(전송 은 빠 르 지만 cpu 소모).여 기 는 5 로 설정 되 어 있 습 니 다.
5) gzip_types
문법:gziptypes mime-type [mime-type ...]
기본 값:gziptypes text/html
역할 영역:http,server,location
설명:MIME 형식 과 일치 하여 압축 합 니 다.(지정 여부 와 상 관 없 이)"text/html"형식 은 항상 압축 됩 니 다.여 기 는 text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-phop 로 설정 되 어 있 습 니 다.

좋은 웹페이지 즐겨찾기