如何在端口443上运行Spring Boot

时间:2020-10-14 15:36:31

标签: spring-boot apache2

我遇到了一个我们的Spring Boot应用程序问题。我们在端口8443上使用https运行它,并且一切正常。现在,我们正在与外部支付处理器建立集成,并且他们要求我们的应用程序在端口443上具有回调终结点。

一些研究告诉我,不允许部署监听端口号低于1024的Spring Boot应用程序。我在此问题上发现的线程通常说“使用1024以上的端口号”,并且张贴者走了 过得开心。我已经有了,需要找出使用端口443的解决方案。

有人有什么建议吗?我可以通过为回调端点构建一个Apache代理来解决这个问题吗?

我们在同一服务器上拥有使用Apache2和端口443的Web应用程序,因此Boot应用程序需要与之共存。

2 个答案:

答案 0 :(得分:0)

有几种Web服务器或反向代理解决方案,它们可以侦听端口443并将您的请求路由到Spring Boot应用程序服务器的端口8443。

除了Apache2,还有:

可能还有更多,但到目前为止我使用的那3个。

如果您的应用程序在云中运行-云提供商通常还会提供可以完成此任务的服务,例如AWS ELB。

答案 1 :(得分:0)

好的,我设法用一种非常简单而优雅的方式自己解决了这个问题。在此过程中,我还解决了必须通过URL中的端口号调用Spring Boot应用程序的问题,这使我很烦。

我发现了这个线程:Spring Boot with embedded Tomcat behind Apache proxy

在其中,解决方案已大致列出。我必须激活三个apache2 mod:

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod headers

我将这些行添加到我的Apache2 vhost配置文件中,就在VirtualHost标签中的ServerName下:

SSLProxyEngine on
ProxyPass / https://127.0.0.1:8443/
ProxyPassReverse / https://127.0.0.1:8443/
RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-Port 443
ProxyPreserveHost On

8443是Spring Boot应用程序使用的端口号,如server.port属性中所配置。

作为奖励,这也意味着我们不再需要在防火墙中打开启动应用程序使用的端口。