Saat ini saya mencoba mengatur Nginx untuk melayani semua file statis saya. Karena mereka tidak akan terlalu sering berubah sama sekali saya ingin kita modul gzip_static untuk memungkinkan saya untuk pra-gzip salinan file saya untuk menghemat waktu cpu dan memungkinkan kompresi yang lebih baik.
Saya mengkompilasi Nginx dengan --with-http_gzip_static_module
dan mengaturnya sehingga melayani file statis saya, tidak ada masalah sejauh ini. Saya ingin menguji dan memastikan bahwa gzipping statis benar-benar berfungsi, jadi saya membuat dua file, test.txt
dan test.txt.gz
. Baris pertama dari masing-masing file mengatakan apakah mereka di-gzip, dan kemudian ada baris baru dan 256 karakter acak (berbeda antara kedua file).
Saya telah membaca bahwa waktu modifikasi file dan gzipnya harus sama, dan saya sudah mencoba keduanya sebagai berikut:
touch test.*
touch -r test.txt test.txt.gx
Di mesin lokal saya, saya menguji dengan curl:
curl $URL/test.txt
Ini berfungsi dengan baik, saya mendapatkan kembali versi yang tidak saya kompresi sebelumnya, tetapi ketika saya melakukan ini:
curl -H "Accept-Encoding: gzip" $URL/test.txt | gunzip
Saya juga mendapatkan kembali versi yang tidak saya kompresi sebelumnya. Saya mencoba pengaturan gzip off
di saya nginx.conf
, tetapi tidak ada bedanya. Saya juga telah mengkompilasi ulang Nginx dengan --without-http_gzip_module
dan itu tampaknya tidak membuat perbedaan juga, Nginx masih melakukan gzip dengan cepat.
Saya cukup baru di Nginx, tapi saya benar-benar bingung di sini.
Ini adalah output dari ./nginx -V
built by gcc 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)
configure arguments: --sbin-path=$SOMEPATH/nginx --prefix=$SOMEPATH --user=$ME --group=$MYGROUP --with-http_gzip_static_module --without-http_gzip_module
Dan ini milik saya nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
error_log logs/error.log;
pid logs/nginx.pid;
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
gzip_static on;
sendfile on;
keepalive_timeout 65;
access_log logs/access.log;
server {
listen XXXX;
server_name foo.bar.com;
location / {
root html;
}
error_page 404 404.html;
error_page 500 502 503 504 50x.html;
}
}
Apapun bantuannya sangat dihargai!