【发布时间】:2016-02-29 19:21:37
【问题描述】:
我不知道在我的http 块中放置 gzip 压缩行的位置,如图所示。
http {
default_type application/octet-stream;
include /etc/nginx/mime.types;
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;
keepalive_timeout 65;
server {
listen 8080;
root /usr/share/nginx;
location / {
root /usr/share/nginx/html;
try_files $uri /index.html;
autoindex off;
}
location ~ ^/(images|fonts|videos)/ {
root /usr/share/nginx/assets;
autoindex off;
expires 7d;
proxy_redirect off;
proxy_max_temp_file_size 0;
}
location ~ \.(mp3|mp4) {
}
}
include /etc/nginx/conf.d/*.conf;
}
我要用于gzip压缩的行在这里,我不知道是放在服务器块中,服务器块之前还是位置块中:
# Compression
gzip on;
gzip_proxied any;
gzip_types text/plain text/xml text/css application/x-javascript;
gzip_vary on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
gzip_static on;
我将 gzip_static 设置为“on”,因为我使用 gulp-gzip 来压缩各种 css 和 js 文件。
【问题讨论】:
-
您是如何确定 gzip 不起作用的? gzip 在 nginx 默认安装中默认启用,您可以在 nginx.conf 文件下找到它,但是,您可以在您认为合适的区域中为您的适当情况添加特定的自定义
-
通过单击网络选项卡,我可以通过查找Content-Encoding 字段来查看内容是否被压缩。出于某种原因,我想要 gzip 的 js / css 文件没有显示该字段。
-
Here 是我的 build.min.js 的响应标头。注意没有
Content-Encoding: gzip字段 -
可能是你定义的 gzip_types 与 nginx 看到的不匹配有关,尝试删除它看看是不是这样,nginx 应该默认使用 gzip
-
我刚刚检查了我的一个网络应用程序的配置,这是使它工作的 conf,我希望它可以帮助你 [gzip_types text/plain text/html text/css application/json application/ javascript 文本/xml 应用程序/xml 文本/javascript;]