Nginx를 역방향 프록시로 사용하여 GZip 압축을 구성하는 방법

WBOY
풀어 주다: 2023-05-22 23:43:04
앞으로
1101명이 탐색했습니다.

전제 조건: 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());
로그인 후 복사

모든 요청을 압축하려면 압축이 맨 위에 배치됩니다.

express 4.0 이상 버전( 4.0 포함)

var compress = require('compression');
app.use(compress());
로그인 후 복사

4.0 이상 버전에서는 미들웨어를 독립적으로 꺼냅니다.

따라서 먼저 rquire('압축')이 필요합니다

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, 서버, 위치

설명: gzip 모듈을 켜거나 끕니다. 여기서 on을 사용하면 시작을 의미합니다

2) gzip_min_length

구문: ​​gzip_min_length 길이

Default 값: gzip_min_length 0

Scope :http, server, location

설명: 압축이 허용되는 페이지의 최소 바이트 수를 설정합니다. 페이지의 바이트 수는 헤더의 content-length에서 가져옵니다. . 기본값은 0이며, 크기에 관계없이 페이지를 압축합니다. 바이트 수는 1k보다 크게 설정하는 것이 좋습니다. 1k보다 작으면 점점 더 압축될 수 있습니다. |

3) gzip_buffers

구문: ​​gzip_buffers 수 크기

기본값: gzip_buffers 4 4k/8k

범위: http, 서버, 위치

설명: gzip을 저장하기 위해 여러 단위의 캐시를 얻도록 시스템을 설정합니다. 결과 데이터 스트림. 4 16k는 16k 단위로 메모리를 적용하고 16k 단위로 원래 데이터 크기의 4배를 적용한다는 의미입니다.

4) gzip_comp_level

구문: ​​gzip_comp_level 1..9

기본값: gzip_comp_level 1

범위: http, 서버, 위치

설명: gzip 압축 비율, 1은 최소 압축 비율이며 가장 빠른 처리 속도입니다. 9 압축 가장 크지만 처리 속도가 가장 느립니다(전송은 빠르지만 더 많은 CPU를 소비합니다). 여기서는 5로 설정되어 있습니다.

5) gzip_types

구문: ​​gzip_types mime-type [mime-type ...]

기본값: gzip_types text/html

범위: http, 서버, 위치

설명: 압축을 위한 MIME 유형 일치, ( 지정 여부에 관계없이 "text/html" 유형은 항상 압축됩니다. 이는 application/x-javascript text/css application/xml로 설정됩니다.

압축해야 하는 상황에 따라 일반적으로 사용되는 정적 유형이 있습니다.

text/html
text/plain
text/css
application/x-javascript
text/javascript
application/xml
로그인 후 복사

ok, 기본 서버는 여기에서 구성되었으며 nginx만 다시 로드하면 됩니다.

지금 테스트해 보겠습니다. 서버에서 gzip이 켜져 있는지 테스트하기 위해 컬을 사용하는 방법(테스트 조건은 기본 gzip_types입니다. 즉, text.html만 압축되고 다른 유형은 압축되지 않습니다):

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
로그인 후 복사

보실 수 있습니다. 두 번째 예는 압축되지 않았습니다.

위 내용은 Nginx를 역방향 프록시로 사용하여 GZip 압축을 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿