【发布时间】:2019-12-22 10:13:40
【问题描述】:
您好 Java 和 Springboot 专家,
这是关于我使用 springboot 在 Java 中创建的一个项目。
我能够在 Spring Boot 中成功创建和设置一个 https 项目。
然后设置 HTTPS 端口,我只需通过命令行设置而不是 application.properties 通过终端中的此命令:
$ java -Dserver.port=6001 -jar myapp-0.0.1.jar
我这样做是为了让我可以轻松地创建将在其他端口运行的其他实例,比如 6002、6003 等等...
但问题是,tomcat设置了这个默认的HTTP端口:
2019-08-16 02:42:36.768 INFO 6 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 6001 (https) 8080 (http)
我想摆脱它,或者将它分配给另一个端口,例如6081.
我已阅读此article,并以编程方式对其进行设置。
但我想避免这种情况。
我只是希望它是我可以在命令行中添加为参数的东西,例如 -Dserver.port=6001。尽可能避免使我的项目进一步复杂化。
我试过这样做:
$ java -Dserver.port=6001 -Dserver.http.port=6081 -jar myapp-0.0.1.jar
...但它不起作用。
您的想法和意见将不胜感激!
【问题讨论】:
-
server.http.port 不再受支持。你有配置 tls/ssl 吗?
-
@ChrisMaggiulli... 是的,事实上它已经是一个工作的 https 服务器了。
-
我没有先阅读您的整个帖子。如果您不使用属性,则需要使用 Java Config。你想在 80 上设置 ngix 服务器或 httpd 服务器,通过 AJP 将 https 请求转发到 Spring。还是您想直接通过 https 公开您的 Spring Boot 服务器而不需要 Web 服务器?
-
@ChrisMaggiulli,一切都好。这实际上是一个封装了 Angular 前端的 Web 服务器。这意味着,它不会与它前面的任何服务器进行交互。这将是前端 Web 服务器。我们只是使用 http 端点,完全忽略了 http:8080。我已经像“myapp:443”一样访问了这个网络服务器。我可以忽略 http:8080,但问题是每次我生成另一个实例时,它也有一个 http 端口 8080。如果我可以摆脱每个实例的 http 端口,或者至少设置每个 http 端口号唯一。比如6081、6082等
标签: java spring-boot http tomcat https