Prasyarat: proksi terbalik node.js + nginx.
node.js Kerja yang diperlukan:
Express 4.0 atau ke bawah:
app.use(express.compress()); //主要是这句 app.use(express.json()); app.use(express.urlencoded()); app.use(express.bodyparser()); app.use(express.methodoverride()); app.use(express.cookieparser());
Untuk membuat segala-galanya Minta pemampatan , jadi mampat diletakkan di atas.
Express 4.0 dan ke atas (termasuk 4.0)
var compress = require('compression'); app.use(compress());
4.0 dan ke atas asingkan middleware.
Jadi anda perlu terlebih dahulu Anda rquire( 'compression')
Klik di sini untuk melihat perbezaan utama antara express 3.5 dan express 4.0
Kerja yang perlu dilakukan oleh node.js adalah semudah itu.
nginx perlukan untuk melakukan Kerja:
Buka fail konfigurasi nginx, ubah suai konfigurasi dan hidupkan suis gzip
nano /usr/local/nginx/conf/nginx.conf
Nginx pada pelayan anda sendiri mungkin tidak dipasang dalam /usr/local/ direktori, jadi pasangkannya mengikut direktori anda sendiri Cari fail konfigurasi nginx.conf
dan tambahkan konfigurasi berikut pada nod konfigurasi 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 ( //放上面配置节点 )
Apakah maksud setiap item konfigurasi?
1) gzip
Sintaks: gzip hidup/mati
Nilai lalai: mati
Skop: http, pelayan, lokasi
Penerangan: Hidupkan atau matikan modul gzip, gunakan di sini Menunjukkan permulaan
2) gzip_min_length
Sintaks: gzip_min_length length
Nilai lalai: gzip_min_length 0
<🎜 : http, pelayan, lokasiPenerangan: Tetapkan bilangan bait minimum halaman yang dibenarkan untuk dimampatkan Bilangan bait halaman diperoleh daripada panjang kandungan dalam pengepala. Nilai lalai ialah 0, yang memampatkan halaman tanpa mengira saiznya. Adalah disyorkan untuk menetapkan bilangan bait menjadi lebih besar daripada 1k Jika kurang daripada 1k, ia mungkin menjadi lebih dan lebih dimampatkan. |3) gzip_buffersSintaks: saiz nombor gzip_buffersNilai lalai: gzip_buffers 4 4k/8kSkop<: http, pelayan, lokasi >Penerangan: Tetapkan sistem untuk mendapatkan beberapa unit cache untuk menyimpan strim data hasil mampatan gzip. 4 16k bermaksud memohon memori dalam unit 16k dan 4 kali ganda saiz data asal dalam unit 16k.
4) gzip_comp_level
Sintaks: gzip_comp_level 1..9
Nilai lalai: gzip_comp_level 1
Skop: http, pelayan, lokasi 🎜>Penerangan: nisbah mampatan gzip, 1 mempunyai nisbah mampatan terkecil dan kelajuan pemprosesan terpantas, 9 mempunyai nisbah mampatan terbesar tetapi pemprosesan paling perlahan (penghantaran pantas tetapi menggunakan lebih banyak CPU). Di sini ia ditetapkan kepada 5.
5) gzip_types
Sintaks: gzip_types mime-type [mime-type ...]
Nilai lalai: gzip_types text/html
Skop : http, pelayan, lokasi
Penerangan: Padankan jenis mim untuk pemampatan, (sama ada dinyatakan atau tidak) jenis "teks/html" akan sentiasa dimampatkan. Ini ditetapkan kepada aplikasi/x-javascript text/css application/xml.
Terdapat jenis statik yang biasa digunakan, bergantung pada situasi yang anda perlukan untuk memampatkan:
text/html text/plain text/css application/x-javascript text/javascript application/xml
ok, pelayan asas telah dikonfigurasikan di sini, dan nginx hanya perlu dimuat semula.
Mari kita uji cara menggunakan curl untuk menguji bahawa pelayan telah menghidupkan gzip (syarat ujian ialah gzip_types lalai, iaitu, hanya text.html dimampatkan, jenis lain tidak dimampatkan):
Semak sama ada ia dihidupkan gzip, pelanggan perlu menambah: maklumat pengepala "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"
Anda boleh melihatnya. Contoh kedua tidak dimampatkan.
Atas ialah kandungan terperinci Cara menggunakan Nginx sebagai proksi terbalik untuk mengkonfigurasi pemampatan GZip. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!