Nginx服务器内容gzip压缩无法正常工作

时间:2012-08-13 07:37:18

标签: http https nginx compression gzip

这是我的nginx.conf中的部分,但我不知道为什么当我用gzip压缩检查器或http标头检查时,内容不是压缩。

https://pasify.com

user              nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;

pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/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"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  0;
    #keepalive_requests 5;
    #keepalive_timeout  65;
    send_timeout 10m;

    # output compression saves bandwidth
    gzip  on;
    gzip_http_version 1.1;
    gzip_vary on;
    gzip_comp_level 6;
    gzip_proxied any;
    gzip_types text/plain text/html text/css application/json application/javascript application/x-javascript text/javascript text/xml application/xml application/rss+xml application/atom+xml application/rdf+xml;

    gzip_buffers 16 8k;

    # Disable gzip for certain browsers.
    gzip_disable MSIE [1-6].(?!.*SV1);

    # Load config files from the /etc/nginx/conf.d directory
    # The default server is in conf.d/default.conf
    include /etc/nginx/conf.d/*.conf;

    ## Detect when HTTPS is used
    map $scheme $fastcgi_https {
      default off;
      https on;
    }

    client_max_body_size 20M;


}

我可以知道这是什么问题吗?

3 个答案:

答案 0 :(得分:8)

通过

  

gzip_disable MSIE [1-6]。(?!。* SV1);

你几乎所有浏览器都禁用了gzip,因为有两个单独的正则表达式:“MSIE”和“[1-6]。(?!。* SV1)”。添加引号或更好地使用它:

  

gzip_disable msie6;

有关详细信息,请参阅docs

答案 1 :(得分:2)

我唯一的评论是http://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_types说gzip_types指定了除text / html之外要压缩的类型。 所以你的gzip_types中的text / html是不必要的。如果指定它仍然有问题我会考虑一个错误,但尝试删除它只是为了确定。

如果不是,你可以告诉我们你的

server {...}  
块看起来像?

还检查以确保/etc/nginx/conf.d/*.conf中没有设置“gzip off”的内容?

答案 2 :(得分:0)

Nginx的默认配置(至少v1.4.6)已注释掉gzip_types行。必须取消注释才能为列出的资源类型提供压缩服务。