현재 모든 정적 파일을 제공하도록 Nginx를 설정하려고합니다. 그것들은 전혀 자주 변경되지 않기 때문에 gzip_static 모듈을 사용하여 cpu 시간을 절약하고 더 나은 압축을 허용하기 위해 파일의 사본을 gzip으로 미리 압축 할 수 있기를 원합니다.
나는 Nginx를 컴파일 --with-http_gzip_static_module
하고 정적 파일을 제공하도록 설정했지만 지금까지 아무런 문제가 없습니다. 나는 정적 Gzip으로 압축 실제로 나는 두 개의 파일을 만들 수 있도록, 작업,되었는지 확인 테스트를 원하고 만들어 test.txt
와 test.txt.gz
. 각 파일의 첫 번째 줄에는 파일이 압축되었는지 여부가 표시되며 줄 바꿈과 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
나는 또한 내가 precompress하지 않았다 버전을 다시 얻을. gzip off
내 설정 을 시도했지만 nginx.conf
차이가 없습니다. 나는 또한 Nginx를 다시 컴파일 --without-http_gzip_module
했으며 그 차이도없는 것 같습니다 .Nginx는 여전히 사물을 gzip으로 압축합니다.
나는 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;
}
}
어떤 도움이라도 대단히 감사합니다!