gpt4 book ai didi

spring - Tomcat 中 server.port 属性的奇怪行为

转载 作者:行者123 更新时间:2023-11-28 22:47:50 25 4
gpt4 key购买 nike

其实这不是问题,而是我想了解的一个奇怪的事情。我使用带有嵌入式 Tomcat 的 SpringBoot2。而且我已经添加了自签名 SSL 证书。这是非常普通的配置:

server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=123456
server.ssl.key-alias=tomcat
server.port=8443

然后我制作了一个连接器,以强制 http -> https 重定向,就像在许多示例中一样:

private Connector getHttpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(8080);
connector.setSecure(false);
connector.setRedirectPort(8443);
return connector;
}

如果我不在我的配置中指定 server.port 属性,我将看到以下错误:

Description:

The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured.

Action:

Verify the connector's configuration, identify and stop any process that's listening on port 8080, or configure this application to listen on another port.

但如果我愿意,我会看到以下内容:

o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8443 (https) 8080 (http) with context path ''

为什么server.port开始指向https端口???甚至 springframework.boot.autoconfigure.web.ServerProperties 的来源也说它是

/**
* Server HTTP port.
*/

是否正常,或者我的服务器中有什么奇怪的东西?或者这就是 Conectors 的工作原理? :) 谢谢

最佳答案

默认情况下,如果您没有在属性文件中为 server.port 提供任何值,嵌入式服务器将在端口 8080 上启动而且您还将连接器端口指定为 8080 (connector.setPort(8080);)因此,您会遇到端口冲突。

关于spring - Tomcat 中 server.port 属性的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51971313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com