Rumah Operasi dan penyelenggaraan Nginx Bagaimana untuk menyediakan pemampatan Gzip untuk pengoptimuman prestasi Nginx

Bagaimana untuk menyediakan pemampatan Gzip untuk pengoptimuman prestasi Nginx

May 29, 2023 pm 05:40 PM
nginx gzip

Nginx menghidupkan fungsi pemampatan Gzip, yang boleh memampatkan fail css, js, xml dan html tapak web semasa penghantaran, meningkatkan kelajuan akses, dan kemudian mengoptimumkan prestasi Nginx Imej, video dan fail multimedia lain dan fail besar di laman web Web , kerana kesan pemampatan tidak baik, tidak perlu menyokong pemampatan untuk imej Jika anda ingin mengoptimumkan, anda boleh menetapkan kitaran hayat imej menjadi lebih lama dan biarkan pelanggan menyimpannya. Selepas menghidupkan fungsi Gzip, pelayan Nginx akan memampatkan kandungan yang dihantar, seperti css, js, xml, html dan sumber statik lain mengikut dasar yang dikonfigurasikan, supaya saiz kandungan dikurangkan, dan pengguna akan memproses ia sebelum menerima kandungan yang dikembalikan Data yang dimampatkan dipaparkan kepada pelanggan. Ini bukan sahaja dapat menjimatkan banyak lebar jalur keluar dan meningkatkan kecekapan penghantaran, tetapi juga meningkatkan pengalaman persepsi pantas pengguna, membunuh dua burung dengan satu batu walaupun ia akan menggunakan sejumlah sumber CPU, ia masih berbaloi untuk diberikan kepada pengguna; pengalaman yang lebih baik.

Menggunakan pemampatan Gzip boleh mengurangkan saiz halaman kepada 30% atau kurang daripada saiz asal, supaya pengguna boleh menyemak imbas halaman dengan lebih pantas. Halaman mampat Gzip perlu disokong oleh kedua-dua penyemak imbas dan pelayan Ia sebenarnya pemampatan sebelah pelayan Selepas dihantar ke penyemak imbas, pelayar menyahmampat dan menghuraikannya. Buat masa ini, kami tidak perlu risau tentang isu penyemak imbas, kerana kebanyakan penyemak imbas boleh menghuraikan halaman yang dimampatkan Gzip.

Fungsi pemampatan Gzip: Anda boleh mendayakan fungsi pemampatan sebelum menghantar mesej respons kepada pelanggan, yang boleh menjimatkan lebar jalur secara berkesan dan meningkatkan kelajuan tindak balas kepada pelanggan. Mampatan Gzip boleh dikonfigurasikan di bawah modul http, pelayan dan lokasi. Perihalan parameter untuk mendayakan pemampatan Gzip dalam Nginx:

gzip on;                 #决定是否开启gzip模块,on表示开启,off表示关闭;
gzip_min_length 1k;      #设置允许压缩的页面最小字节(从header头的Content-Length中获取) ,当返回内容大于此值时才会使用gzip进行压缩,以K为单位,当值为0时,所有页面都进行压缩。建议大于1k
gzip_buffers 4 16k;      #设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间,param2:int(k) 后面单位是k。这里设置以16k为单位,按照原始数据大小以16k为单位的4倍申请内存
gzip_http_version 1.1;   #识别http协议的版本,早起浏览器可能不支持gzip自解压,用户会看到乱码
gzip_comp_level 2;       #设置gzip压缩等级,等级越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大;等级1-9,最小的压缩最快 但是消耗cpu
gzip_types text/plain application/x-javascript text/css application/xml;    #设置需要压缩的MIME类型,非设置值不进行压缩,即匹配压缩类型
gzip_vary on;            #启用应答头"Vary: Accept-Encoding"

gzip_proxied off;
nginx做为反向代理时启用,off(关闭所有代理结果的数据的压缩),expired(启用压缩,如果header头中包括"Expires"头信息),no-cache(启用压缩,header头中包含"Cache-Control:no-cache"),
no-store(启用压缩,header头中包含"Cache-Control:no-store"),private(启用压缩,header头中包含"Cache-Control:private"),no_last_modefied(启用压缩,header头中不包含
  "Last-Modified"),no_etag(启用压缩,如果header头中不包含"Etag"头信息),auth(启用压缩,如果header头中包含"Authorization"头信息)

gzip_disable msie6;
(IE5.5和IE6 SP1使用msie6参数来禁止gzip压缩 )指定哪些不需要gzip压缩的浏览器(将和User-Agents进行匹配),依赖于PCRE库

######################################################################################################
#如下:修改nginx配置文件 /usr/local/nginx/conf/nginx.conf
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf        #将以下配置放到nginx.conf的http{ ... }区域中

#修改配置为
gzip on;                     #开启gzip压缩功能
gzip_min_length 10k;         #设置允许压缩的页面最小字节数; 这里表示如果文件小于10个字节,就不用压缩,因为没有意义,本来就很小.
gzip_buffers 4 16k;          #设置压缩缓冲区大小,此处设置为4个16K内存作为压缩结果流缓存
gzip_http_version 1.1;       #压缩版本
gzip_comp_level 2;           #设置压缩比率,最小为1,处理速度快,传输速度慢;9为最大压缩比,处理速度慢,传输速度快; 这里表示压缩级别,可以是0到9中的任一个,级别越高,压缩就越小,节省了带宽资源,但同时也消耗CPU资源,所以一般折中为6
gzip types text/css text/xml application/javascript;      #制定压缩的类型,线上配置时尽可能配置多的压缩类型!
gzip_disable "MSIE [1-6]\.";       #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
gzip vary on;    #选择支持vary header;改选项可以让前端的缓存服务器缓存经过gzip压缩的页面; 这个可以不写,表示在传送数据时,给客户端说明我使用了gzip压缩
Salin selepas log masuk

Berikut ialah konfigurasi pemampatan Gzip yang biasa digunakan dalam talian

[root@external-lb02 ~]# cat /data/nginx/conf/nginx.conf
........
http {
.......
    gzip  on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 9;
    gzip_types       text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;
    gzip_disable "MSIE [1-6]\.";
    gzip_vary on;

}
Salin selepas log masuk

Jika anda tidak mendayakan pemampatan Gzip (iaitu mengulas konfigurasi berkaitan Gzip) , lihat saiz imej

[root@external-lb02 ~]#  ll  -h /data/web//www/test.bmp
-rw-r--r-- 1 root root 453K 3月  14 18:43 /data/web//www/test.bmp
Salin selepas log masuk

Seperti yang dapat dilihat dari berikut, fail tidak dimampatkan dan saiz pemindahan fail masih lebih daripada 400K

Bagaimana untuk menyediakan pemampatan Gzip untuk pengoptimuman prestasi Nginx

Jika anda mendayakan fungsi pemampatan Gzip Nginx (iaitu hidupkan konfigurasi Relevan Gzip), kemudian akses imej test.bmp sekali lagi dan ketahui bahawa saiz pemindahan fail imej termampat hanya lebih daripada 200K!

Bagaimana untuk menyediakan pemampatan Gzip untuk pengoptimuman prestasi Nginx

Melalui perbandingan ujian di atas, didapati bahawa Nginx didayakan Selepas fungsi pemampatan Gzip, saiz fail jenis gzip yang ditakrifkan adalah lebih kecil dengan ketara semasa penghantaran, yang akan meningkatkan prestasi capaian nginx dengan ketara

Secara langsung gunakan arahan ujian keriting:

[root@fvtlb02 ~]# curl -I -H "Accept-Encoding: gzip, deflate" "http://fvtvfc-web.kevin.com/service-worker.js"
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Mon, 26 Nov 2018 02:19:16 GMT
Content-Type: application/javascript; charset=utf-8
Connection: keep-alive
Vary: Accept-Encoding
Last-Modified: Sun, 25 Nov 2018 22:28:15 GMT
Vary: Accept-Encoding
ETag: W/"5bfb21ff-40be"
Content-Encoding: gzip
Salin selepas log masuk

seperti di atas, "Conten_Encoding: gzip" muncul dalam maklumat pengepala respons, yang bermaksud bahawa Nginx telah menghidupkan pemampatan (hal yang sama berlaku untuk melihat respons pengepala permintaan melalui F12 apabila diakses dalam penyemak imbas)

Walaupun fungsi pemampatan Gzip Nginx mudah digunakan, tetapi tidak disyorkan untuk mendayakan fungsi pemampatan ini untuk dua jenis sumber fail berikut.

1) Sumber jenis gambar (dan fail video) Sebab: Gambar seperti fail jpg dan png sendiri dimampatkan, jadi walaupun selepas gzip dihidupkan, sebelum dan selepas pemampatan Tidak banyak perbezaan dalam saiz, jadi menghidupkannya akan membazir sumber. (Anda boleh cuba memampatkan imej jpg ke dalam zip dan perhatikan saiznya tidak banyak berubah. Walaupun algoritma zip dan gzip berbeza, dapat dilihat bahawa nilai memampatkan imej tidak bagus)

2) Sumber fail yang besar Sebab: Ia akan menggunakan banyak sumber CPU dan mungkin tidak mempunyai kesan yang jelas.

Atas ialah kandungan terperinci Bagaimana untuk menyediakan pemampatan Gzip untuk pengoptimuman prestasi Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk membenarkan akses rangkaian luaran ke pelayan tomcat Bagaimana untuk membenarkan akses rangkaian luaran ke pelayan tomcat Apr 21, 2024 am 07:22 AM

Untuk membenarkan pelayan Tomcat mengakses rangkaian luaran, anda perlu: mengubah suai fail konfigurasi Tomcat untuk membenarkan sambungan luaran. Tambahkan peraturan tembok api untuk membenarkan akses kepada port pelayan Tomcat. Buat rekod DNS yang menunjukkan nama domain ke IP awam pelayan Tomcat. Pilihan: Gunakan proksi terbalik untuk meningkatkan keselamatan dan prestasi. Pilihan: Sediakan HTTPS untuk meningkatkan keselamatan.

Bagaimana untuk menjana URL daripada fail html Bagaimana untuk menjana URL daripada fail html Apr 21, 2024 pm 12:57 PM

Menukar fail HTML kepada URL memerlukan pelayan web, yang melibatkan langkah berikut: Dapatkan pelayan web. Sediakan pelayan web. Muat naik fail HTML. Buat nama domain. Halakan permintaan.

Bagaimana untuk menggunakan projek nodejs ke pelayan Bagaimana untuk menggunakan projek nodejs ke pelayan Apr 21, 2024 am 04:40 AM

Langkah-langkah penggunaan pelayan untuk projek Node.js: Sediakan persekitaran penggunaan: dapatkan akses pelayan, pasang Node.js, sediakan repositori Git. Bina aplikasi: Gunakan npm run build untuk menjana kod dan kebergantungan yang boleh digunakan. Muat naik kod ke pelayan: melalui Git atau Protokol Pemindahan Fail. Pasang kebergantungan: SSH ke dalam pelayan dan gunakan pemasangan npm untuk memasang kebergantungan aplikasi. Mulakan aplikasi: Gunakan arahan seperti node index.js untuk memulakan aplikasi, atau gunakan pengurus proses seperti pm2. Konfigurasikan proksi terbalik (pilihan): Gunakan proksi terbalik seperti Nginx atau Apache untuk menghalakan trafik ke aplikasi anda

Bolehkah nodejs diakses dari luar? Bolehkah nodejs diakses dari luar? Apr 21, 2024 am 04:43 AM

Ya, Node.js boleh diakses dari luar. Anda boleh menggunakan kaedah berikut: Gunakan Cloud Functions untuk menggunakan fungsi dan menjadikannya boleh diakses secara umum. Gunakan rangka kerja Express untuk membuat laluan dan menentukan titik akhir. Gunakan Nginx untuk membalikkan permintaan proksi kepada aplikasi Node.js. Gunakan bekas Docker untuk menjalankan aplikasi Node.js dan dedahkannya melalui pemetaan port.

Bagaimana untuk menggunakan dan menyelenggara laman web menggunakan PHP Bagaimana untuk menggunakan dan menyelenggara laman web menggunakan PHP May 03, 2024 am 08:54 AM

Untuk berjaya menggunakan dan menyelenggara tapak web PHP, anda perlu melakukan langkah berikut: Pilih pelayan web (seperti Apache atau Nginx) Pasang PHP Cipta pangkalan data dan sambungkan PHP Muat naik kod ke pelayan Sediakan nama domain dan Pemantauan DNS penyelenggaraan tapak web langkah termasuk mengemas kini PHP dan pelayan web, dan membuat sandaran tapak web, memantau log ralat dan mengemas kini kandungan.

Cara menggunakan Fail2Ban untuk melindungi pelayan anda daripada serangan kekerasan Cara menggunakan Fail2Ban untuk melindungi pelayan anda daripada serangan kekerasan Apr 27, 2024 am 08:34 AM

Tugas penting untuk pentadbir Linux adalah untuk melindungi pelayan daripada serangan atau akses haram. Secara lalai, sistem Linux disertakan dengan firewall yang dikonfigurasikan dengan baik, seperti iptables, Uncomplicated Firewall (UFW), ConfigServerSecurityFirewall (CSF), dsb., yang boleh menghalang pelbagai serangan. Mana-mana mesin yang disambungkan ke Internet adalah sasaran yang berpotensi untuk serangan berniat jahat. Terdapat alat yang dipanggil Fail2Ban yang boleh digunakan untuk mengurangkan akses haram pada pelayan. Apakah Fail2Ban? Fail2Ban[1] ialah perisian pencegahan pencerobohan yang melindungi pelayan daripada serangan kekerasan. Ia ditulis dalam bahasa pengaturcaraan Python

Mari bersama saya untuk mempelajari Linux dan memasang Nginx Mari bersama saya untuk mempelajari Linux dan memasang Nginx Apr 28, 2024 pm 03:10 PM

Hari ini, saya akan membawa anda memasang Nginx dalam persekitaran Linux Sistem Linux yang digunakan di sini ialah CentOS7.2 Sediakan alat pemasangan 1. Muat turun Nginx dari laman web rasmi Nginx. Versi yang digunakan di sini ialah: 1.13.6.2 Muat naik Nginx yang dimuat turun ke Linux Di sini, direktori /opt/nginx digunakan sebagai contoh. Jalankan "tar-zxvfnginx-1.13.6.tar.gz" untuk nyahmampat. 3. Tukar ke direktori /opt/nginx/nginx-1.13.6 dan jalankan ./configure untuk konfigurasi awal. Jika gesaan berikut muncul, ini bermakna PCRE tidak dipasang pada mesin, dan Nginx perlu melakukannya

Beberapa perkara yang perlu diberi perhatian apabila membina ketersediaan tinggi dengan keepalived+nginx Beberapa perkara yang perlu diberi perhatian apabila membina ketersediaan tinggi dengan keepalived+nginx Apr 23, 2024 pm 05:50 PM

Selepas yum memasang keepalived, konfigurasikan fail konfigurasi keepalived Ambil perhatian bahawa dalam fail konfigurasi keepalived bagi induk dan sandaran, nama kad rangkaian ialah nama kad rangkaian VIP yang tersedia Biasanya dalam ketersediaan tinggi. Persekitaran LAN Terdapat lebih banyak lagi, jadi VIP ini adalah IP intranet dalam segmen rangkaian yang sama dengan kedua-dua mesin. Jika digunakan dalam persekitaran rangkaian luaran, tidak kira sama ada ia berada pada segmen rangkaian yang sama, asalkan pelanggan boleh mengaksesnya. Hentikan perkhidmatan nginx dan mulakan perkhidmatan keepalived Anda akan melihat bahawa keepalived menarik perkhidmatan nginx untuk dimulakan.

See all articles