На даний момент я намагаюся налаштувати Nginx для обслуговування всіх моїх статичних файлів. Оскільки вони взагалі не будуть змінюватися дуже часто, я хочу, щоб ми gzip_static модуль дозволив мені попередньо gzip копії моїх файлів, щоб заощадити деякий час процесора та забезпечити кращу компресію.
Я компілював Nginx --with-http_gzip_static_module
і налаштував його так, що він обслуговує мої статичні файли, поки що жодних проблем. Я хотів перевірити і переконатися, що статичний gzipping насправді працює, тому я зробив два файли test.txt
та test.txt.gz
. Перший рядок кожного з файлів говорить про те, чи були вони gzipped, а потім є новий рядок та 256 випадкових символів (різний між двома файлами).
Я читав, що час модифікації файлу та його gzipped аналога має бути однаковим, і я спробував обидва наступного:
touch test.*
touch -r test.txt test.txt.gx
На своїй локальній машині я тестую за допомогою curl:
curl $URL/test.txt
Це добре працює, я повертаю версію, яку я не попередньо стискав, але коли я це роблю:
curl -H "Accept-Encoding: gzip" $URL/test.txt | gunzip
Я також повертаю версію, яку я не докомпресував. Я спробував налаштувати gzip off
свою nginx.conf
, але це не має значення. Я також перекомпілював Nginx, --without-http_gzip_module
і це, мабуть, не має ніякого значення, і Nginx все ще gzips речі на ходу.
Я зовсім новачок у Nginx, але я тут справді втрачаю.
Ось вихід ./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
І ось моя 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;
}
}
Будь-яка допомога дуже вдячна!