Spring boot Spring引导,在多个端口上启用压缩

Spring boot Spring引导,在多个端口上启用压缩,spring-boot,Spring Boot,在我们的spring boot应用程序中,我们需要一个安全和非安全的端口。我已通过application.properties文件将端口3000配置为安全的: # Override default port setting server.port=3000 # Enable SSL server.ssl.key-store=classpath:keystore.p12 server.ssl.key-store-password=##### server.ssl.keyStoreType=PKC

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

# 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设置为不安全:

@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中我添加了:

# 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连接器上启用压缩,但没有效果。所以我请求一位大师帮助解决这个问题


提前感谢。

您在协议级别设置了压缩,如下所示

@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;
}