Node. js 사이트 에서 Nginx 를 역방향 에이전트 로 사용 할 때 GZip 압축 튜 토리 얼 을 설정 합 니 다.

4059 단어
node. js 가 개발 한 사이트, 당신 도 nginx 로 역방향 대 리 를 실현 했다 면.
그러면 서버 에서 gzip 압축 을 쉽게 실현 하여 사이트 탐색 을 더욱 원활 하 게 할 수 있 습 니 다.
전제조건: node. js + nginx 역방향 에이전트.
node. js 가 해 야 할 일:
express 4.0 이하 버 전:

app.use(express.compress()); //     
app.use(express.json()); 
app.use(express.urlencoded()); 
app.use(express.bodyParser()); 
app.use(express.methodOverride()); 
app.use(express.cookieParser());

모든 요청 을 압축 시 키 기 위해 copress 를 위 에 놓 습 니 다.
express 4.0 이상 버 전 (4.0 포함)

var compress = require('compression');
app.use(compress());

4.0 이상 버 전 은 중간 부품 을 독립 적 으로 꺼 냈 다.
그래서 먼저 rquire ('compression') 가 필요 합 니 다.
여 기 를 클릭 하여 express 3.5 와 express 4.0 의 주요 차이 점 을 봅 니 다.
node. js 가 해 야 할 일 은 이렇게 간단 합 니 다.
nginx 가 해 야 할 일:
nginx 프로필 열기, 설정 수정, gzip 스위치 열기

nano /usr/local/nginx/conf/nginx.conf

서버 에 있 는 nginx 가 반드시 / usr / local / 디 렉 터 리 에 설치 되 어 있 는 것 은 아니 므 로 설치 디 렉 터 리 에 따라 설정 파일 nginx. conf 를 찾 습 니 다.
http 설정 노드 에 다음 설정 을 추가 합 니 다:

    gzip on;
    gzip_min_length 1k;
    gzip_buffers   4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types    text/plain application/x-javascript text/css application/xml;
    gzip_vary on;

http (
    //         
)


모든 설정 항목 은 어떤 의 미 를 표시 합 니까?
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" 형식 은 항상 압축 됩 니 다.여 기 는 application / x - javascript text / css application / xml 로 설정 되 어 있 습 니 다.
자주 사용 하 는 정적 type 은 압축 이 필요 한 상황 을 보고 정 합 니 다.

text/html
text/plain
text/css
application/x-javascript
text/javascript
application/xml

OK, 여기까지 기본 서버 설정 이 완료 되 었 습 니 다. Nginx 는 reload 만 하면 됩 니 다.
서버 가 gzip 을 열 었 는 지 curl 로 어떻게 테스트 하 는 지 테스트 해 보 겠 습 니 다. (테스트 조건 은 기본 gzip types 입 니 다. 즉, text. html 만 압축 하고 다른 type 은 압축 되 지 않 았 습 니 다)
gzip 을 열 었 는 지 확인 하려 면 클 라 이언 트 가입 이 필요 합 니 다. "Accept - Encoding: gzip, deflate" 헤더 정보 입 니 다.

$ curl -I -H "Accept-Encoding: gzip, deflate" "http://localhost/tag.php"


HTTP/1.1 200 OK
Server: nginx
Date: Thu, 08 Mar 2012 07:23:46 GMT
Content-Type: text/html
Connection: close
Content-Encoding: gzip


$ curl -I -H "Accept-Encoding: gzip, deflate" "http://localhost/style.css"


HTTP/1.1 200 OK
Server: nginx
Date: Thu, 08 Mar 2012 07:23:54 GMT
Content-Type: text/css
Connection: close
Last-Modified: Tue, 27 Dec 2011 10:00:51 GMT
ETag: "BC612352322D435769C4BDC03DDB2572"
Content-Length: 22834

알 수 있 겠 지?두 번 째 예 는 압축 되 지 않 았 다.

좋은 웹페이지 즐겨찾기