Saya menggunakan cache proxy reverse nginx dengan gzip diaktifkan. Namun, saya mendapat beberapa masalah dari aplikasi Android HTTP-request ke layanan web Rails JSON saya. Tampaknya ketika saya mematikan cache proxy terbalik, berfungsi dengan baik karena header respons datang tanpa gzip. Karena itu, saya pikir masalahnya disebabkan oleh gzip. Apa tingkat kompresi gzip yang paling tepat?
gzip on;
gzip_http_version 1.0;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_types text/plain text/css text/javascript application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss;
Saya menguji ini di bawah nginx 1.3.9 dengan dua file, dan ini adalah hasil yang saya dapatkan untuk berbagai tingkatan:
text/html
- phpinfo ():application/x-javascript
- jQuery 1.8.3 (Tidak terkompresi):Saya tidak yakin seberapa representatifnya hal ini tetapi harus dijadikan contoh. Juga, saya belum memperhitungkan penggunaan CPU tetapi dari hasil ini tingkat kompresi yang ideal tampaknya antara
4
dan6
.Selain itu, jika Anda menggunakan
gzip_static
modul, Anda mungkin ingin melakukan pra-kompres file Anda (dalam PHP):Ini memungkinkan Anda untuk mendapatkan kompresi terbaik tanpa mengorbankan CPU pada setiap permintaan.
sumber
Jika Anda benar-benar dapat menghemat sumber daya CPU, Anda dapat menggunakan 9, tetapi untuk sebagian besar situs nilai 2 sudah cukup, karena gzip tidak mengurangi banyak file setelah level 1.
Sunting: Saya melihat Amazon CloudFront dan tampaknya menggunakan level 6, mungkin karena level itu adalah yang menjalankan dekompresi lebih cepat, sehingga meningkatkan kinerja pembuatan halaman.
sumber
Jika Anda memiliki situs web bervolume tinggi dan masih ingin memiliki tingkat penuh (9) kompresi, ide terbaik adalah menempatkan konten statis Anda di Amazon S3 atau layanan penyimpanan objek serupa dan mengunggah file terkompresi.
Anda masih ingin menggunakan nginx untuk mengompresi HTML Anda, jadi lebih baik untuk menjaga nilai itu tetap normal, saya menggunakan 5 di sana.
sumber
comp_level
di konfigurasi saya, jadi saya tidak bisa mengatakan pada level apa saya saat ini. Apakah Anda tahu apa standarnya? Sumber?