我有一个配置了http端口8080和server.port = 8443的spring boot应用程序。我在服务器上生成了自签名证书,然后重新启动了应用程序。我的应用程序以某种方式响应,没有http://mycustomdomain.com或https://mycustomdomain.com下的任何端口号以及8080 / http和8443 / https的显式端口(如我预期的那样)。
虽然未指定端口信息是我想要的功能,但是我尝试通过在application.properties中指定端口80和443来使其正常工作,但我想了解它是如何工作的?
我的应用程序捆绑为一个自可执行jar,并且我没有在IPTables或任何其他软件中设置任何端口转发。如何运作?
我在AWS EC2上托管,并确认没有启用loadbalancer。除了spring的默认server.port连接器之外,我正在使用此bean来具有http连接器。
@Component
public class HttpServer {
@Bean
public ServletWebServerFactory servletContainer(@Value("${server.http.port}") int httpPort) {
Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
connector.setPort(httpPort);
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(connector);
return tomcat;
}
}