Spring Boot 和 Apache2 在同一服务器和端口上

Posted

技术标签:

【中文标题】Spring Boot 和 Apache2 在同一服务器和端口上【英文标题】:Spring Boot and Apache2 on the same server and port 【发布时间】:2019-02-20 03:11:07 【问题描述】:

我正在寻找在同一端口和服务器上启用 Apache2 和 Spring Boot 应用程序的解决方案。启动应用程序已打开 通过内部 Tomcat 服务器。 Apache(wordpress)应该在端口 443 或 80 上工作,主 url 应该是:https://domian.dd/blog。其余的 url 应该由 Spring Boot 处理。

第一个问题是我无法在同一个端口上打开两个应用程序。 第二个问题是 Spring Boot 有将端口 80 转发到 443 的配置。

谢谢。

【问题讨论】:

确实不能让两个进程监听同一个端口。您需要将两者中的一个配置为前端服务器,它将请求中继到在另一个端口或文件系统中的套接字上侦听的另一个服务器。您还可以使用像负载均衡器这样的纯前端服务器,并在其后面运行两个您的应用程序服务器。如何为此类任务配置 apache http 服务器已有详细文档,请查看其代理模块的文档。 【参考方案1】:

您不能在同一台机器上的同一端口上运行两个应用程序,但您可以通过以下方式实现您所寻找的。​​p>

    使用 https://localhost:8443/myapp 之类的路径运行您的 Spring Boot 应用程序

    运行 apache 并安装 ssl

    在 ssl.conf 中进行以下设置,将我的应用流量转发到 Spring Boot 应用

    SSLProxyEngine on
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off
    ProxyRequests Off
    ProxyPass /myapp https://localhost:8443/myapp
    ProxyPassReverse /myapp https://localhost:8443/myapp
    

    如果/var/www/html 是根文件夹,则将您的博客站点放在apache 根文件夹/博客下,那么博客将在/var/www/html/blog

【讨论】:

以上是关于Spring Boot 和 Apache2 在同一服务器和端口上的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 Spring Boot 中将 MongoDb 和 PostgreSql 用于同一模型?

在 Spring-Boot 中,我们如何在同一个项目中连接两个数据库(Mysql 数据库和 MongoDB)?

如何在 Spring Boot 应用程序的同一个域类上同时使用 Spring Data JPA 和 Spring Data Elasticsearch 存储库?

在同一个 Spring Boot 应用程序中的 Rest 服务和 Web 服务

在同一上下文中使用 Spring Boot 2 OAuth Client 和 Resourcesserver

Gradle 如何配置构建文件以从同一项目创建 Spring boot jar 和 spring web-mvc war