这是我的nginx.conf中的部分,但我不知道为什么当我用gzip压缩检查器或http标头检查时,内容不是压缩。
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;
}
我可以知道这是什么问题吗?
答案 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
行。必须取消注释才能为列出的资源类型提供压缩服务。