Atualmente, estou tentando configurar o Nginx para atender a todos os meus arquivos estáticos. Como eles não serão alterados com muita freqüência, eu quero que o módulo gzip_static permita que eu pré-gzip cópias de meus arquivos para economizar algum tempo de CPU e permitir uma melhor compressão.
Compilei o Nginx com --with-http_gzip_static_module
e o configurei para que ele sirva meus arquivos estáticos, sem problemas até o momento. Eu queria testar e ter certeza de que o gzip estático estava funcionando, então eu fiz dois arquivos, test.txt
e test.txt.gz
. A primeira linha de cada um dos arquivos diz se eles foram gzipados e, em seguida, há uma nova linha e 256 caracteres aleatórios (diferentes entre os dois arquivos).
Eu li que o horário de modificação do arquivo e seu equivalente gzip deve ser o mesmo, e eu tentei os dois itens a seguir:
touch test.*
touch -r test.txt test.txt.gx
Na minha máquina local, estou testando com o curl:
curl $URL/test.txt
Isso funciona bem, eu recebo de volta a versão que eu não fiz pré-compactação, mas quando eu faço isso:
curl -H "Accept-Encoding: gzip" $URL/test.txt | gunzip
Eu também recupero a versão que não pré-comprimei. Tentei definir gzip off
no meu nginx.conf
, mas isso não faz diferença. Eu também recompilei o Nginx com --without-http_gzip_module
e isso também não faz diferença, o Nginx ainda gzips as coisas em tempo real.
Sou muito novo no Nginx, mas estou realmente perdido aqui.
Aqui está a saída de ./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
E aqui está meu 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;
}
}
Qualquer ajuda é muito apreciada!