【问题标题】:How to run two spring boot applications on same server?如何在同一台服务器上运行两个 Spring Boot 应用程序?
【发布时间】:2021-03-02 17:38:49
【问题描述】:

我有两个 Spring Boot 应用程序。我希望它们同时在服务器上的不同端口上运行,现在我正在我的计算机上本地测试它,当我运行两个 jar 并且我正在使用一个应用程序时,另一个会刷新并注销。我不能同时使用这两个应用程序。

这是嵌入式服务器、spring boot 还是其他问题?我已经阅读了几篇文章,但我不确定为什么会这样或如何以最好的方式解决这个问题。我应该将这两个应用程序打包为 WAR 并使用 Apache Tomcat 运行它们,还是有最新的方法来使用 spring boot 和 jar 打包?

【问题讨论】:

  • 为什么你认为 2 个独立的网络应用会共享同一个会话?你是怎么实现的?

标签: java spring-boot server vaadin


【解决方案1】:

会话基于 cookie,cookie 根据名称和主机名保存。例如,如果您正在运行两个 spring boot 或 tomcat 应用程序并尝试连接这两个应用程序:

  • 对于第一个应用程序(在 localhost:8080 中运行),默认创建一个会话,名称为 JSESSIONID,主机为 localhost
  • 对于第二个应用程序(在 localhost:8090 中运行),默认情况下会使用名称 JSESSIONID 和主机 localhost 创建一个会话,这将使第一个应用程序无效。

你可以:

  • 更改网址(例如 app1:8080 和 app2:8090)。
  • 根据您的架构/服务器更改会话 cookie 名称。对于 Spring Boot,您可以这样更改:server.servlet.session.cookie.name = ANOTHERSESSIONID

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-23
    • 2019-08-06
    • 2021-08-20
    • 2014-02-12
    • 1970-01-01
    • 2016-09-05
    • 2011-11-21
    • 2021-03-02
    相关资源
    最近更新 更多