Saya telah sangat fokus pada pengoptimalan situs web tertentu sehingga skor 100 pada alat Google PageSpeed Insights (untuk seluler dan desktop). Sebagian besar item berfungsi dengan sempurna, tetapi saya terus mendapatkan peringatan "Aktifkan Kompresi" untuk situs web.
Ini merepotkan, karena gzip diaktifkan di server saya, dan satu-satunya sumber daya yang dilayani tidak terkompresi berasal dari modul NGINX PageSpeed. Saya telah melewati halaman konfigurasi di situs web Google, tetapi tidak ada yang menjelaskan cara mengaktifkan kompresi, selain konfigurasi NGINX umum yang sudah ada.
Pertanyaan saya adalah ini: Bagaimana cara saya mengaktifkan kompresi gzip sehingga berfungsi untuk sumber daya kecepatan halaman?
Penyiapan server saya:
Ubuntu 12.0.4.3 LTS NGINX - Kustom dikompilasi 1.5.4 dengan modul PageSpeed 1.6.29.5 beta
Konfigurasi Server NGINX:
user www-data;
#set worker processes to cpu processes
worker_processes 4;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
client_max_body_size 200m;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 3;
types_hash_max_size 2048;
gzip on;
gzip_disable msie6;
gzip_static on;
gzip_types text/plain text/css application/x-javascript text/xml application/xml+rss text/javascript;
gzip_vary on;
fastcgi_read_timeout 2m;
include global/caching.conf;
include /etc/nginx/enabled-sites/*;
upstream php {
server 127.0.0.1:9000;
}
#fastcgi caching header
add_header mcapp-fastcgi-cache $upstream_cache_status;
}
Konfigurasi Situs Web:
server {
server_name www.examplesite.com;
rewrite ^ $scheme://examplesite.com$request_uri permanent;
}
server {
#pagespeed directives
pagespeed On;
pagespeed FileCachePath /var/cache/nginx-pagespeed;
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
add_header "" "";
}
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }
#pagespeed directives end
server_name examplesite.com;
root /path/to/examplesite;
# wordpress config
include global/restrictions.conf;
include global/wordpress.conf;
}
EDIT Hanya untuk menjelaskan lebih lanjut, aset spesifik yang tampaknya tidak dapat dikompresi adalah aset javascript. Sebagai contoh:
Enable compression for the following resources to reduce their transfer size by 355.5KiB (69% reduction).
Compressing http://examplesite.com/wp-includes/js/jquery/jquery.js,qver=1.10.2.pagespeed.jm.iCH2ukpEYb.js could save 58.8KiB (64% reduction).
Compressing http://examplesite.com/wp-content/themes/Avada/framework/plugins/revslider/rs-plugin/js/jquery.themepunch.revolution.min.js?ver=3.6.1 could save 43.9KiB (80% reduction).
sumber
expires 24hrs
karena alasan saya selalu mendapatkan "BEEEEP, ANDA TAHAN ITU SALAH". Hal yang sama berlaku untuk YSLOWJawaban:
Setelah lebih banyak mencabut rambut, menggertakkan gigi, dan meninju pembicara, (dan Googling), saya menemukan permintaan cacat di forum dukungan NGINX untuk mengubah tipe javascript (.js) mime-type dari application / x-javascript ke aplikasi / javascript. Lihat http://trac.nginx.org/nginx/ticket/306
Seperti yang Anda lihat di nginx.conf dalam pertanyaan saya, saya punya:
Ini pada dasarnya menyebabkan file javascript saya diabaikan oleh gzip_types, karena tidak ada lagi aplikasi / tipe-x-javascript mime (kecuali jika Anda membuat kustom di mime-types.conf atau Anda memiliki versi NGINX yang benar-benar lama) .
Saya mengubah baris itu menjadi yang ini:
Setelah NGINX -s dimuat ulang, file javascript saya kompres dengan baik! Jadi, ternyata itu tidak ada hubungannya dengan modul PageSpeed, dan sebagai gantinya ada masalah dengan konfigurasi saya yang tidak mengidentifikasi tipe mime yang benar untuk dikompres.
sumber
application/x-javascript
danapplication/javascript
, karena selama permintaan saya saya mendapatkan kedua jenis mime (Aku ingin tahu apakah saya harus beralih ke hanyaapplication/javascript
.Pada rilis 1.9.32.1-beta, ngx_pagespeed akan mengaktifkan dan mengkonfigurasi gzip itu sendiri ketika tidak ada konfigurasi gzip eksplisit ada di nginx (dan modul kompresi gzip dikompilasi dalam).
Lihat https://developers.google.com/speed/pagespeed/module/release_notes#release_1.9.32.1-beta
sumber
Sesuai RFC 4329 , server web Anda harus menggunakan
application/javascript
dan tidakapplication/x-javascript
.Pertama, Anda harus memeriksa apakah
/etc/nginx/nginx.conf
file Anda mengandung (setidaknya) diapplication/javascript
sebelahgzip_types
:Misalnya
Lalu, buka file jenis MIME Anda
/etc/nginx/mime.types
dan pastikan bahwa jika Anda melihat ini:untuk
Terakhir, muat ulang konfigurasi Anda:
Itu dia!
sumber