>운영 및 유지보수 >엔진스 >gzip 구성 방법에 대한 Nginx 기본 소개

gzip 구성 방법에 대한 Nginx 기본 소개

PHPz
PHPz앞으로
2023-06-03 09:52:434280검색

머리말

gzip(gnu-zip)은 압축 기술입니다. gzip 압축 후 페이지 크기는 원래 크기보다 30% 또는 더 작게 줄어들 수 있으므로 사용자는 페이지를 훨씬 빠르게 탐색할 수 있습니다. gzip 압축 페이지는 브라우저와 서버 모두에서 지원되어야 합니다. 이는 실제로 브라우저로 전송된 후 브라우저가 압축을 풀고 구문 분석하는 것입니다. 대부분의 최신 브라우저는 gzip 페이지 구문 분석을 지원하므로 브라우저에 대해 걱정할 필요가 없습니다.

프런트엔드든 백엔드든 프로젝트를 배포할 때 nginx를 자주 사용하고, 소규모 프로젝트에서는 리버스 프록시 등을 사용하는 경우가 많습니다. 오늘은 간단하고 직접적으로 요점 중 하나인 gzip에 대해 이야기하겠습니다. 오류가 있으면 정정해 주세요.

Ubuntu, centos, linux 등은 서버 측에서 흔히 사용됩니다. 서버가 없으면 로컬로 플레이할 수 있습니다.

mac 설치

mac에서는 Brew를 사용하여 직접 설치할 수 있습니다. Brew가 설치되어 있지 않은 경우 먼저 설치하면 됩니다.

/usr/bin/ruby -e "$(curl -fssl https://raw.githubusercontent.com/homebrew/install/master/install)"
brew install nginx

기본 구성

설치가 완료되면 다음과 같은 내용이 표시됩니다. 명령줄에는 다음 정보가 포함되어 있습니다. nginx를 볼 수 있습니다. .conf가 있는 경로는 우리가 찾고 있는 구성 파일입니다. 포트 정보도 포함되어 있습니다. nginx를 시작하면 http://localhost:8080에 직접 접속할 수 있습니다. 아래 그림과 같은 페이지가 나타나면 설치가 성공한 것입니다.

docroot: /usr/local/var/www
default config: /usr/local/etc/nginx/nginx.conf
port:8080

gzip 구성 방법에 대한 Nginx 기본 소개

몇 가지 공통 명령

  • 시작: nginxnginx

  • 重新热启动:nginx -s reload

  • 关闭:nginx -s stop

  • 测试语法:nginx -t

gizp配置:

gzip 相关配置可放在 http{} 或 server{} 或 location{} 层级,若不同层级有重复设置优先级为 location{} > server{} > http{}

1、开启 gzip压缩

gzip on;

2、gzip http 版本

gzip_http_version 1.0;

3、禁止ie6进行gzip压缩(当然现在已经基本没有人使用ie6了)

gzip_disable "msie [1-6]";

4、压缩级别(1~9,一般为平衡文件大小和cpu使用,5是常用值,当然跟实际机器的情况有关)

gzip_comp_level 5;

5、最小压缩临界值(默认的是20字节)

gzip_min_length 20;

6、压缩通过代理链接的客户端数据

gzip_proxied any;

7、采用http协议版本 默认是1.1 ,对于1.0的请求不会压缩,如果设置成1.0,表示http1.0以上 的版本都会压缩。(如果使用了proxy_pass 进行反向代理,那么nginx和后端的 upstream server之间默认是用 http/1.0协议通信的。)

gzip_http_version 1.0;

8、代理缓存压缩和原始版本资源,避免客户端因accept-encoding不支持gzip而发生错误的现象(现在一般都采用gzip)

gzip_vary on;

9、压缩文件类型(默认总是压缩 text/html类型,其中特别说明的是application/javascript和text/javascript最好都加上,若页面script标签的type不同则有可能发生部分js文件不会压缩,默认type为application/javascript)

gzip_types application/atom+xml application/javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/plain text/javascript text/x-component;

10、如果有已经压缩的(.gz)或者提供静态文件服务,可以设置为on。如果不是这样,最好设置为off,因为这会造成额外的i/o开销。一个比较好的处理方式是放在location{}server{}

핫 재시작: nginx -s reload


닫기: nginx -s stop🎜🎜🎜테스트 구문: nginx -t🎜🎜 🎜 gizp 구성: 🎜🎜🎜🎜gzip 관련 구성은 다른 경우 http{} , server{} 또는 location{} 수준에 배치할 수 있습니다. 수준에서 반복되는 설정이 있습니다: location{} > server{} > http{}🎜🎜1. gzip 압축을 켜세요🎜🎜
gzip_static on;
🎜3. . IE6을 비활성화하면 gzip 압축이 수행됩니다(물론 현재 IE6을 사용하는 사람은 거의 없습니다)🎜🎜
gzip_buffers 16 8k;
🎜4. 압축 수준(1~9, 일반적으로 파일 크기와 CPU 사용량의 균형, 5는 물론 실제 머신 상황) 🎜🎜rrreee🎜5. 최소 압축 임계값(기본값은 20바이트) 🎜🎜rrreee🎜6. 프록시를 통해 연결된 클라이언트 데이터를 압축합니다.🎜🎜rrreee🎜7. 기본 http 프로토콜 버전은 1.0입니다. 1.0으로 설정하면 http1.0 이상의 버전은 압축됩니다. (proxy_pass가 역방향 프록시에 사용되는 경우 nginx와 백엔드 업스트림 서버 간의 통신은 기본적으로 http/1.0 프로토콜을 사용합니다.)🎜🎜rrreee🎜8 클라이언트가 수락하지 못하도록 프록시 캐시와 원본 버전 리소스를 압축합니다. - 인코딩이 gzip을 지원하지 않아 오류가 발생함(현재는 일반적으로 gzip을 사용함) 🎜🎜rrreee🎜9. 압축 파일 형식(기본값은 항상 text/html 형식으로 압축하며 특히 application/javascript 및 text/javascript가 가장 좋음) , 페이지 스크립트 태그 유형이 다른 경우 일부 js 파일은 압축되지 않을 수 있습니다. 기본 유형은 application/javascript)🎜🎜rrreee🎜10 압축(.gz) 또는 정적 파일 서비스가 있는 경우 설정할 수 있습니다. 에. 그렇지 않은 경우 추가 I/O 오버헤드가 발생하므로 끄기로 설정하는 것이 가장 좋습니다. 이를 처리하는 더 좋은 방법은 위치{} 또는 서버{} 수준에서 별도로 처리하는 것입니다. 🎜🎜rrreee🎜11. 압축 결과 데이터 스트림을 저장하는 데 사용되는 공간은 다음과 같습니다. 단위는 8k이며, 메모리는 8k 단위로 원래 데이터 크기의 16배에 해당합니다. 기본값은 gzip 압축 결과를 저장하기 위해 원본 데이터와 동일한 크기의 메모리 공간을 적용하는 것입니다. 🎜🎜rrreee

위 내용은 gzip 구성 방법에 대한 Nginx 기본 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제