Obecnie próbuję skonfigurować Nginx do obsługi wszystkich moich plików statycznych. Ponieważ nie będą one często zmieniane bardzo często, chcę nam moduł gzip_static, który pozwoli mi wstępnie kopiować kopie moich plików, aby zaoszczędzić trochę czasu procesora i umożliwić lepszą kompresję.
Skompilowałem Nginx --with-http_gzip_static_module
i skonfigurowałem go tak, aby obsługiwał moje pliki statyczne, bez żadnych problemów. Chciałem przetestować i upewnić się, że statyczne gzipping faktycznie działa, więc utworzyłem dwa pliki test.txt
i test.txt.gz
. W pierwszym wierszu każdego z plików jest napisane, czy zostały zgzipowane, a następnie jest nowa linia i 256 losowych znaków (różne między dwoma plikami).
Przeczytałem, że czas modyfikacji pliku i jego gzipowanego odpowiednika powinien być taki sam, i wypróbowałem oba poniższe:
touch test.*
touch -r test.txt test.txt.gx
Na mojej lokalnej maszynie testuję za pomocą curl:
curl $URL/test.txt
Działa to dobrze, otrzymuję wersję, której nie skompresowałem, ale kiedy to zrobię:
curl -H "Accept-Encoding: gzip" $URL/test.txt | gunzip
Ja też wrócić wersję ja nie precompress. Próbowałem ustawić gzip off
w sobie nginx.conf
, ale to nie robi różnicy. Ponownie skompilowałem Nginx --without-http_gzip_module
i to też nie wydaje się mieć znaczenia, Nginx wciąż zgada rzeczy w locie.
Jestem całkiem nowy w Nginx, ale naprawdę jestem tutaj zagubiony.
Oto wynik działania ./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
A oto moje 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;
}
}
Każda pomoc jest bardzo mile widziana!