配置文件
server.port=443
server.tomcat.max-threads = 2000
server.tomcat.uri-encoding = UTF-8
server.tomcat.MaxConnections = 2000
server.tomcat.ConnectionTimeout = 3000
server.ssl.key-store=classpath:214493288770827.pfx
server.ssl.key-store-password=214493288770827
server.ssl.keyStoreType=PKCS12
http.port:8087
443 https 的默认端口 8087为http使用的端口
java 代码中 Tomcat 的配置
@Value("${server.tomcat.MaxConnections}")
private int maxConnections;
@Value("${server.tomcat.ConnectionTimeout}")
private int connectionTimeout;
@Value("${http.port}")
private Integer httpport;
@Value("${server.port}")
private Integer port;
/**
* tomcat 配置
* @return
*/
@Bean
public EmbeddedServletContainerFactory createEmbeddedServletContainerFactory() {
TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory()/*{
//重新方法进行重定向到https
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint) ;
}
}*/;
tomcatFactory.addConnectorCustomizers(new MyTomcatConnectorCustomizer());
tomcatFactory.setUriEncoding(Charset.forName("UTF-8"));
tomcatFactory.addAdditionalTomcatConnectors(createStandardConnector()); // 添加http
return tomcatFactory;
}
//设置tomcat 连接数和超时时间
class MyTomcatConnectorCustomizer implements TomcatConnectorCustomizer {
public void customize(Connector connector) {
Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
// 设置最大连接数
protocol.setMaxConnections(maxConnections);
// 连接超时时间
protocol.setConnectionTimeout(connectionTimeout);
}
}
// 配置http,并且重定向到https
private Connector createStandardConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(httpport);
/* connector.setScheme("http");
connector.setSecure( false );
connector.setRedirectPort(port); */
return connector;
}
实现https和http共存,如果http需要进行重定向到https,放开注册的代码就可以实现。