tomcat设置gzip
使用tomcat发布3dtiles或terrain数据遇到的gzip问题
问题一
对大于1KB小于48KB的json请求进行gzip压缩,json为原文件(对于大于48KB使用sendfile)
1.创建原始文件

2.设置
在apache-tomcat-8.5.9/conf/server.xml文件中,修改节点如下:
<Connector port="" protocol="HTTP/1.1"
connectionTimeout=""
redirectPort=""
compression="on"
compressionMinSize=""
compressableMimeType="application/json"
/>
3.参数说明
compression="on" 开启压缩
compressionMinSize="1024"大于1KB的文件才进行压缩
compressableMimeType="application/json",多个类型用","分隔,MIME类型(Content-Type)列表,例如:application/json。
useSendfile属性默认为true,当数据大小达到48kb时,将启用文件传输(sendfile),所以我们想要压缩超过48kb的数据时必须将useSendfile设置为false。(有同学按照我的博客设置,是因为文件大于48KB并且没有关闭sendfile)
4.确定MIME类型
方法一:MIM在apache-tomcat-8.5.9/conf/web.xml有一个设置列表,可以将对应文件后缀名添加MIME类型,
例如:下面配置将请求json后缀名文件的url都添加Content-Type=application/json
<mime-mapping>
<extension>json</extension>
<mime-type>application/json</mime-type>
</mime-mapping>
方法二:
若是不想找文件后缀名与MIME类型的对应关系,直接查看请求即可
5.确定是否gzip压缩
在浏览器输入http://localhost:8080/test-gzip/tileset.json
5.1在response headers里有Content-Encoding:gzip(告诉浏览器需要gzip解压),只要有这个head就意味着tomcat设置的gzip压缩生效了
5.2查看文件内容,用于判断是否gzip压缩是错误的,例如下图

上图数据和原始数据一样,可能会误以为获取到的json没有用gzip压缩,其实是浏览器已经解压过数据,所以你看到的数据与原始数据是一样的。
可以通过比较文件大小判断是否gzip压缩


问题二
对大于1KB小于48KB的.terrain后缀文件请求,进行gzip压缩。
1.设置
1.1在apache-tomcat-8.5.9/conf/web.xml,增加映射关系
<mime-mapping>
<extension>terrain</extension>
<mime-type>application/octet-stream</mime-type>
</mime-mapping>
1.2在apache-tomcat-8.5.9/conf/server.xml文件中,修改节点如下:
<Connector port="" protocol="HTTP/1.1"
connectionTimeout=""
redirectPort=""
compression="on"
compressionMinSize=""
compressableMimeType="application/octet-stream"/>
2.测试
在浏览器输入http://localhost:8080/test-gzip/0.terrain

延申:
使用cesiumlab生成已经经过gzip压缩过的地形,就没办法通过设置tomcat的gzip了,因为tomcat会再次压缩一次(相当于压缩两次)。只能设置response headers标识
例如java代码里加入
response.setHeader("Content-Encoding", "gzip");
例如加过滤器(已经验证过)
https://www.jianshu.com/p/5cc7d87c19f0
tomcat设置gzip的更多相关文章
- 提升网站性能之设置gzip
tomcat如何设置gzip: http://www.tuicool.com/articles/aMRRFre http://blog.csdn.net/xuefeng0707/article/det ...
- Eclipse下Tomcat设置
1,Eclipse建立Tomcat服务 1.1 新建Server 首先这里是指,jee版的Eclipse.Eclipse是没有像MyEclipse那样集成Tomcat的,需要我们自己设置. New - ...
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
Tomcat设置默认启动项目 Tomcat设置默认启动项目,顾名思义,就是让可以在浏览器的地址栏中输入ip:8080,就能访问到我们的项目.具体操作如下: 1.打开tomcat的安装根目录,找到Tom ...
- Linux tomcat设置ip地址直接访问,tomcat设置ip地址直接访问,tomcat绑定ip地址
Linux tomcat设置ip地址直接访问,tomcat设置ip地址直接访问,tomcat绑定ip地址 >>>>>>>>>>>> ...
- tomcat设置默认启动项
Tomcat设置默认启动项目 Tomcat设置默认启动项目,顾名思义,就是让可以在浏览器的地址栏中输入ip:8080,就能访问到我们的项目.具体操作如下: 1.打开tomcat的安装根目 ...
- eclipse及tomcat设置编码
新装的eclipse新导入项目会乱码,解决办法: 右击项目选properties,找到resources选择utf-8 改后乱码解决 乱码解决后可能还会有红叉,project clean即可 一劳永逸 ...
- tomcat设置开机自启动和后台运行
前言:当浏览器页面显示不出来的时候,重启装在服务器上的tomcat可以正常使用,是通过进入tomcat的bin目录,双击startup.bat运行启动的程序,这时会弹出启动窗口(tomcat的运行日志 ...
- 将Tomcat设置为自动启动的服务最快捷方法
将Tomcat设置为自动启动的服务: 最近遇到了个问题,服务器上的项目突然访问不了,就上服务器去重启了tomcat服务,谁知道到最后tomcat的服务报错了,重新启动服务的选项 也没有,之前这个项目也 ...
- 将Tomcat设置为windows自动启动的服务
一般情况下Tomcat服务需要手动运行批命令启动服务.在windows操作系统下如果需要将Tomcat变成自动启动的服务,只需按以下步骤操作即可: 方法/步骤 将Tomcat设置成服务(假设我们缺省的 ...
随机推荐
- mysql 系统变量
show variables; ---------------------------------+-------------------------------------------------- ...
- Go part 7 反射,反射类型对象,反射值对象
反射 反射是指在程序运行期间对程序本身进行访问和修改的能力,(程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分,在运行程序时,程序无法获取自身的信息) 支持反射的语言可以在程序编 ...
- [技术翻译]您应该知道的13个有用的JavaScript数组技巧
本次预计翻译三篇文章如下: 01.[译]9个可以让你在2020年成为前端专家的项目 02.[译]预加载响应式图像,从Chrome 73开始实现 03.[译]您应该知道的13个有用的JavaScript ...
- 在SAP除了使用Cordova生产移动应用外,还有这种方式
本文和Jerry过去的文章不太一样,算不上Jerry的知识分享,只是记录一下Jerry用React-Native把应用安装到Android手机上遇到的一些问题,方便以后查看. Jerry的同事Leo用 ...
- echarts的一点记录
echart官网地址: https://www.echartsjs.com/index.html echarts实例地址:https://echarts.baidu.com/examples/ vue ...
- Android笔记(二十四) Android中的SeekBar(拖动条)
拖动条和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程度,而拖动条则通过滑块的位置来标识数值——而且拖动条允许用户拖动滑块来改变值,因此拖动条通常用于对系统的某种数值进行调节,比如调节音量等 ...
- 子div撑不开父div的几种解决办法:
如何修正DIV float之后导致的外部容器不能撑开的问题 在写HTML代码的时候,发现在Firefox等符合W3C标准的浏览器中,如果有一个DIV作为外部容器,内部的DIV如果设置了float样 ...
- 如何为Spring Boot应用程序配置端口
[转]https://www.javaroad.cn/questions/11162 1 个月前 1.1通过属性文件更新 . /src/main/resources/application.prope ...
- VSCode之使用Settings Sync同步配置和插件
需求背景 自己平常工作,一般在公司用公司的电脑,在家里就是自己的,但是vscode如果配置了新的内容,或者安装了新的插件,那每次都需要单独记录一下然后再重新配置一遍.使用Settings Sync插件 ...
- 前端知识总结--html
1. doctype的作用是什么? <!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前. <!DOCTYPE> 声明不是 HT ...