如何 运行 Spring 在端口 443 上启动
How to run Spring Boot on port 443
我 运行 遇到了我们的 Spring 启动应用程序之一的问题。我们在端口 8443 上安装了 运行 https,一切正常。现在我们正在构建与外部支付处理器的集成,他们要求我们在端口 443 上的应用程序中有一个回调端点。
一些研究告诉我部署 Spring 启动应用程序侦听低于 1024 的端口号是不允许的。我在这个问题上找到的线程通常说“使用 1024 以上的端口号”并且发帖人走
快乐。我已经有了,需要找出一个使用端口 443 的解决方案。
有没有人有什么建议?我可以通过为回调端点构建 Apache 代理来解决这个问题吗?
我们在同一台服务器上有使用 Apache2 和端口 443 的 Web 应用程序,因此 Boot 应用程序需要与之共存。
有几个 Web-Server 或 Reverse-Proxy 解决方案,它们可以侦听端口 443 并将您的请求路由到 Spring 启动应用程序服务器的端口 8443。
除了Apache2还有:
- nginx : https://www.nginx.com/
- haproxy : https://www.haproxy.org/
可能还有很多,但我目前使用的是这 3 个。
如果您的应用程序 运行 在云中 - 云提供商通常还提供可以完成这项工作的服务,例如AWS ELB.
好的,我设法以一种非常简单和优雅的方式自行解决了这个问题。在此过程中,我还解决了 Spring 引导应用程序必须使用 URL 中的端口号调用的问题,这一直困扰着我。
我找到了这个帖子:Spring Boot with embedded Tomcat behind Apache proxy
其中几乎列出了解决方案。我必须激活三个 apache2 模组:
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod headers
我将这些行添加到我的 Apache2 虚拟主机配置文件中,就在 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 启动应用程序使用的端口号,在 server.port
属性.
中配置
作为奖励,这也意味着我们不再需要在防火墙中打开引导应用程序使用的端口。
我 运行 遇到了我们的 Spring 启动应用程序之一的问题。我们在端口 8443 上安装了 运行 https,一切正常。现在我们正在构建与外部支付处理器的集成,他们要求我们在端口 443 上的应用程序中有一个回调端点。
一些研究告诉我部署 Spring 启动应用程序侦听低于 1024 的端口号是不允许的。我在这个问题上找到的线程通常说“使用 1024 以上的端口号”并且发帖人走 快乐。我已经有了,需要找出一个使用端口 443 的解决方案。
有没有人有什么建议?我可以通过为回调端点构建 Apache 代理来解决这个问题吗?
我们在同一台服务器上有使用 Apache2 和端口 443 的 Web 应用程序,因此 Boot 应用程序需要与之共存。
有几个 Web-Server 或 Reverse-Proxy 解决方案,它们可以侦听端口 443 并将您的请求路由到 Spring 启动应用程序服务器的端口 8443。
除了Apache2还有:
- nginx : https://www.nginx.com/
- haproxy : https://www.haproxy.org/
可能还有很多,但我目前使用的是这 3 个。
如果您的应用程序 运行 在云中 - 云提供商通常还提供可以完成这项工作的服务,例如AWS ELB.
好的,我设法以一种非常简单和优雅的方式自行解决了这个问题。在此过程中,我还解决了 Spring 引导应用程序必须使用 URL 中的端口号调用的问题,这一直困扰着我。
我找到了这个帖子:Spring Boot with embedded Tomcat behind Apache proxy
其中几乎列出了解决方案。我必须激活三个 apache2 模组:
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod headers
我将这些行添加到我的 Apache2 虚拟主机配置文件中,就在 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 启动应用程序使用的端口号,在 server.port
属性.
作为奖励,这也意味着我们不再需要在防火墙中打开引导应用程序使用的端口。