如何在jBoss EAP服务器中启用Gzip压缩
我使用的是jBoss EAP 6.1服务器,我想为我的HTML、CSS和javaScript文件启用GZIP压缩 我对这种压缩技术是完全陌生的,有谁能给我推荐一个教程,或者直接给我一个在Jboss EAP 6.1服务器上实现压缩的步骤 除此之外,我还有以下疑问: 1) 我是否需要压缩工作区中的文件,或者如果我的jboss服务器将启用压缩功能,它将负责压缩,我只需要部署war如何在jBoss EAP服务器中启用Gzip压缩,jboss,compression,jboss-eap-6,http-compression,Jboss,Compression,Jboss Eap 6,Http Compression,我使用的是jBoss EAP 6.1服务器,我想为我的HTML、CSS和javaScript文件启用GZIP压缩 我对这种压缩技术是完全陌生的,有谁能给我推荐一个教程,或者直接给我一个在Jboss EAP 6.1服务器上实现压缩的步骤 除此之外,我还有以下疑问: 1) 我是否需要压缩工作区中的文件,或者如果我的jboss服务器将启用压缩功能,它将负责压缩,我只需要部署war 2) 当服务器响应我的请求时,我是否需要显式地转换、解码或解压缩文件以使用它们或解释它们 GZIP对web资源的压缩是可选
2) 当服务器响应我的请求时,我是否需要显式地转换、解码或解压缩文件以使用它们或解释它们 GZIP对web资源的压缩是可选的,因此您不能压缩所有资源,然后希望每个web客户端都能处理它。这就是为什么当客户端(可能是一个web浏览器)用
Accept-Encoding:gzip,deflate
标题说“gzip适合我”时,它通常在运行时启用的原因。看
在服务器端,神奇的是由一个代理处理,它截取请求,记录头,然后将请求发送到应用程序的其余部分,截取响应并进行相应压缩
JBoss有一些内置的支持:
如果您想自己做,您需要编写一个过滤器
,并在web.xml
中进行配置
:
或者,您也可以使用性能优化库,如本文所述启用压缩
另见:
Accept-Encoding:gzip,deflate
标题说“gzip适合我”时,它通常在运行时启用的原因。看
在服务器端,神奇的是由一个代理处理,它截取请求,记录头,然后将请求发送到应用程序的其余部分,截取响应并进行相应压缩
JBoss有一些内置的支持:
如果您想自己做,您需要编写一个过滤器
,并在web.xml
中进行配置
:
或者,您也可以使用性能优化库,如本文所述启用压缩
另见:
<subsystem xmlns="urn:jboss:domain:undertow:1.2"> <!-- SEARCH FOR THIS: urn:jboss:domain:undertow -->
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http"/>
<host name="default-host" alias="localhost">
(...)
<!-- ADD THIS FOR GZIP COMPRESSION -->
<filter-ref name="gzipFilter" predicate="exists['%{o,Content-Type}'] and regex[pattern='(?:application/javascript|text/css|text/html|text/xml|application/json)(;.*)?', value=%{o,Content-Type}, full-match=true]"/>
<!-- /GZIP COMPRESSION -->
</host>
</server>
(...)
<filters>
(...)
<!-- ADD THIS FOR GZIP COMPRESSION -->
<gzip name="gzipFilter"/>
<!-- /GZIP COMPRESSION -->
</filters>
</subsystem>
(...)
(...)
(...)
在Jboss EAP 7.0中重新启动服务器这对我来说很有效: 编辑:Standalone.xml
<subsystem xmlns="urn:jboss:domain:undertow:1.2"> <!-- SEARCH FOR THIS: urn:jboss:domain:undertow -->
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http"/>
<host name="default-host" alias="localhost">
(...)
<!-- ADD THIS FOR GZIP COMPRESSION -->
<filter-ref name="gzipFilter" predicate="exists['%{o,Content-Type}'] and regex[pattern='(?:application/javascript|text/css|text/html|text/xml|application/json)(;.*)?', value=%{o,Content-Type}, full-match=true]"/>
<!-- /GZIP COMPRESSION -->
</host>
</server>
(...)
<filters>
(...)
<!-- ADD THIS FOR GZIP COMPRESSION -->
<gzip name="gzipFilter"/>
<!-- /GZIP COMPRESSION -->
</filters>
</subsystem>
(...)
(...)
(...)
重新启动服务器Hello@Aaron Digulla我已经在我的jBoss EAP 6.1上实现了这段代码,当我在本地服务器上工作时,它工作正常。但当我移动到实际的服务器环境时,这些变化并没有得到反映。我的服务器是JBossServerEAP6.1,正在Linux操作系统上工作。请参考我的新问题。你好@Aaron Digulla我已经在我的jBoss EAP 6.1上实现了这段代码,当我在本地服务器上工作时,它工作得很好。但当我移动到实际的服务器环境时,这些变化并没有得到反映。我的服务器是JBossServerEAP6.1,正在Linux操作系统上工作。请参考我的新问题。值得注意的是,在JBoss的更高版本中,方括号会引起一个警告:
Predicate not min content size[2048]使用老式的方括号来定义谓词,这将在将来的版本中删除。谓词[value]应更改为谓词(value)
。我在这个替代谓词中看到了很好的结果,它捕获了许多类型的文本内容类型:predicate=“exists”(“{o,content-type}”)和regex(pattern=”(?:text | javascript | json | html | multipart | xml),value=%{o,content-type},full-match=false)
值得注意的是,在JBoss的更高版本中,方括号会引起一个警告:Predicate not min content size[2048]使用老式的方括号来定义谓词,这将在将来的版本中删除。谓词[value]应更改为谓词(value)
。我在这个替代谓词中看到了很好的结果,它捕获了许多类型的文本内容类型:predicate=“exists(“%$o,content-type}”)和regex(pattern=”(?:text | javascript | json | html | multipart | xml),value=%%o,content-type},full-match=false)