Tôi hiện đang cố gắng thiết lập Nginx để phục vụ tất cả các tệp tĩnh của mình. Vì chúng sẽ không được thay đổi rất thường xuyên, tôi muốn cho chúng tôi mô-đun gzip_static để cho phép tôi sao chép trước các tệp của tệp để tiết kiệm thời gian cpu và cho phép nén tốt hơn.
Tôi đã biên dịch Nginx với --with-http_gzip_static_module
và thiết lập nó để nó đang phục vụ các tệp tĩnh của tôi, cho đến nay không có vấn đề gì. Tôi muốn kiểm tra và đảm bảo rằng gzipping tĩnh thực sự hoạt động, vì vậy tôi đã tạo hai tệp test.txt
và test.txt.gz
. Dòng đầu tiên của mỗi tệp cho biết liệu chúng có được nén hay không, và sau đó có một dòng mới và 256 ký tự ngẫu nhiên (khác nhau giữa hai tệp).
Tôi đã đọc rằng thời gian sửa đổi của tệp và bản sao được nén của nó phải giống nhau và tôi đã thử cả hai cách sau:
touch test.*
touch -r test.txt test.txt.gx
Trên máy cục bộ của tôi, tôi đang thử nghiệm với curl:
curl $URL/test.txt
Điều này hoạt động tốt, tôi lấy lại phiên bản mà tôi không nén trước, nhưng khi tôi làm điều này:
curl -H "Accept-Encoding: gzip" $URL/test.txt | gunzip
Tôi cũng lấy lại phiên bản mà tôi đã không giải nén. Tôi cố gắng thiết lập gzip off
trong tôi nginx.conf
, nhưng nó không tạo sự khác biệt. Tôi cũng đã biên dịch lại Nginx --without-http_gzip_module
và điều đó dường như cũng không tạo ra sự khác biệt, Nginx vẫn tự mình điều chỉnh mọi thứ.
Tôi còn khá mới mẻ với Nginx, nhưng tôi thực sự thua lỗ ở đây.
Đây là đầu ra của ./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
Và đây là của tôi 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;
}
}
Bất kỳ trợ giúp là rất đánh giá cao!