设为首页 收藏本站
查看: 1155|回复: 0

[经验分享] nginx gzip duplicate MIME type “text/html”

[复制链接]

尚未签到

发表于 2016-12-26 08:04:13 | 显示全部楼层 |阅读模式

指令



  • [#gzip gzip]
  • [#gzip_buffers gzip_buffers]
  • [#gzip_comp_level
    gzip_comp_level
    ]
  • [#gzip_min_length gzip_min_length]
  • [#gzip_http_version gzip_http_version]
  • [#gzip_proxied gzip_proxied]
  • [#gzip_types gzip_types]
  把nginx升级到最新以后,发现用原来的配置启动的时候会提示:

Starting nginx: [warn]: duplicate MIME type “text/html” in
/usr/local/nginx/conf/nginx.conf:23
  解决办法:去掉下面一行中的“text/html”。
  
gzip_types  text/plain text/html  text/css application/x-javascript
text/xml application/xml application/xml+rss text/javascript;


原因:text/html根本就不需要写的,gzip默认就会压缩它的,只不过以前的nginx版本不提示这个警告而已,新版本的会出这个警告。

gzip on;
gzip_static on; # Only use this if you compiled it yourself -or- with this module
gzip_proxied any;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
gzip_http_version 1.1;
gzip_min_length 10;
gzip_comp_level 9;
# text/css application/x-javascript and text/javascript are really your choice...
gzip_types text/plain application/xhtml+xml text/xml application/xml application/xml+rss;
   最近在开发一个项目,开发环境为 win + apache & linux + nginx,开发过程中在IE
6,7,8,ff下测试均正确无误,但在测试部的服务器下竟然所有带iframe的网页都无法显示,有点像404,但是很奇怪单独打开页面有时可以正常显
示有时不可以,而且在IE7,8和ff下不会出现这种,很郁闷..

          
后来查看返回数据浏览器尽然接收到了数据但就是无法显示,仔细对比header头发现开发环境中没有使用动态gzip压缩,而测试环境中使用了动态
gzip压缩,后来打开开发环境nginx服务器的gzip压缩,重现了IE6无法显示页面的情况,在网上搜索了下出现这种情况大多数为引入js文件的时
候会出现,总结了下对于页面中引入外部资源的都有可能出现这种情况…严重鄙视IE…

Nginx下遇到IE6关闭gizp压缩只需要加: gzip_disable  ”MSIE [1-6] \.”;


gzip

  语法:
gzip on|off

  默认值:
gzip off

  作用域:
http, server, location, if (x) location

  开启或者关闭gzip模块


gzip_buffers

  语法:
gzip_buffers number size

  默认值:
gzip_buffers 4 4k/8k

  作用域:
http, server, location

  

设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。例如 4 4k  代表以4k为单位,按照原始数据大小以4k为单位的4倍申请内存。 4
8k 代表以8k为单位,按照原始数据大小以8k为单位的4倍申请内存。
  如果没有设置,默认值是申请跟原始数据相同大小的内存空间去存储gzip压缩结果。


gzip_comp_level


  语法:
gzip_comp_level
1..9


  默认值:
gzip_comp_level
1


  作用域:
http, server, location

  gzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理最慢(传输快但比较消耗cpu)。
  



gzip_min_length

  语法:
gzip_min_length length

  默认值:
gzip_min_length 0

  作用域:
http, server, location

  

设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。
  默认值是0,不管页面多大都压缩。
  建议设置成大于1k的字节数,小于1k可能会越压越大。即: gzip_min_length 1024


gzip_http_version

  语法:
gzip_http_version 1.0|1.1

  默认值:
gzip_http_version 1.1

  作用域:
http, server, location

  识别http的协议版本。由于早期的一些浏览器或者http客户端,可能不支持gzip自解压,用户就会看到乱码,所以做一些判断还是有必要的。
注:21世纪都来了,现在除了类似于百度的蜘蛛之类的东西不支持自解压,99.99%的浏览器基本上都支持gzip解压了,所以可以不用设这个值,保持系
统默认即可。


gzip_proxied

  语法:
gzip_proxied  
[off|expired|no-cache|no-store|private|no_last_modified|no_etag|auth|any]
...


  默认值:
gzip_proxied off

  作用域:
http, server, location

  Nginx作为反向代理的时候启用,开启或者关闭后端服务器返回的结果,匹配的前提是后端服务器必须要返回包含"Via"的 header头。


  • off - 关闭所有的代理结果数据的压缩
  • expired - 启用压缩,如果header头中包含 "Expires" 头信息
  • no-cache - 启用压缩,如果header头中包含 "Cache-Control:no-cache" 头信息
  • no-store - 启用压缩,如果header头中包含 "Cache-Control:no-store" 头信息
  • private - 启用压缩,如果header头中包含 "Cache-Control:private" 头信息
  • no_last_modified - 启用压缩,如果header头中不包含 "Last-Modified" 头信息
  • no_etag - 启用压缩 ,如果header头中不包含 "ETag" 头信息
  • auth - 启用压缩 , 如果header头中包含 "Authorization" 头信息
  • any - 无条件启用压缩


gzip_types

  语法:
gzip_types mime-type [mime-type ...]

  默认值:
gzip_types text/html

  作用域:
http, server, location

  匹配MIME类型进行压缩,(无论是否指定)"text/html"类型总是会被压缩的。
  

注意:如果作为http server来使用,主配置文件中要包含文件类型配置文件

http
{
include       conf/mime.types;
......
}
  

如果你希望压缩常规的文件类型,可以写成这个样子

http
{
: include       conf/mime.types;
: gzip on;
: gzip_min_length  1000;
: gzip_buffers     4 8k;   
: gzip_http_version 1.1;
: gzip_types       application/x-javascript text/css application/xml;
: ......
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-319356-1-1.html 上篇帖子: nginx整合tomcat 实现负载均衡 下篇帖子: nginx启动80端口占用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表