首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹簧启动,启用对多个端口的压缩

弹簧启动,启用对多个端口的压缩
EN

Stack Overflow用户
提问于 2018-03-15 18:53:02
回答 1查看 408关注 0票数 2

在我们的春季引导应用程序中,我们需要一个安全和非安全的端口。我已经通过application.properties文件将端口3000配置为安全:

代码语言:javascript
复制
# Override default port setting
server.port=3000

# Enable SSL
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=#####
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=tomcat

在某些代码中,将端口8080设置为非安全端口:

代码语言:javascript
复制
@Bean
public EmbeddedServletContainerFactory servletContainer() {
    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setScheme("http");
    connector.setPort(8080);
    tomcat.addAdditionalTomcatConnectors(connector);
    return tomcat;
}

现在,我希望启用压缩传递,因此在application.properties中我添加了以下内容:

代码语言:javascript
复制
# Embedded Server Compression
server.compression.enabled=true
server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,image/svg+xml,application/json
server.compression.min-response-size=2048

看起来这是一个服务器范围的设置,但是8080端口不能传输压缩数据,而3000端口则很好。如果我正确理解,创建8080连接器的bean正在使用主服务器。我尝试了几种设置组合,比如使用旧属性对8080连接器启用压缩,但都没有效果。所以我想找个大师帮忙解决这个问题。

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-27 20:16:16

您可以在协议级别设置压缩,如下所示。

代码语言:javascript
复制
@Bean public EmbeddedServletContainerFactory servletContainer() {

    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();

    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");

    Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
    protocol.setCompressibleMimeType("text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,image/svg+xml,application/json");
    protocol.setCompression("on");
    protocol.setCompressionMinSize(2048);

    connector.setScheme("http");
    connector.setPort(8080);
    connector.setSecure(false);

    tomcat.addAdditionalTomcatConnectors(connector);
    return tomcat;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49307179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档