我在使用我们的 Spring Boot 应用程序之一时遇到了问题。我们让它在端口 8443 上使用 https 运行,一切正常。现在,我们正在构建与外部支付处理器的集成,它们要求我们在应用程序的端口 443 上有一个回调端点。
一些研究告诉我,部署侦听低于 1024 的端口号的 Spring boot 应用程序是不允许的。我在这个问题上找到的线程通常会说“使用高于 1024 的端口号”,并且发帖人会走
快乐出发。我已经有了这个,需要找出一个使用端口 443 的解决方案。
有人有什么建议吗?我可以通过为回调端点构建 Apache 代理来解决这个问题吗?
我们在同一台服务器上有使用 Apache2 和端口 443 的 Web 应用程序,因此 Boot 应用程序需要与其共存。
好的,我设法以一种非常简单而优雅的方式自己解决了这个问题。在此过程中,我还解决了 Spring boot 应用程序必须使用 URL 中的端口号来调用的问题,这一直困扰着我。
我找到了这个线程:Spring Boot 在 Apache 代理后面嵌入 Tomcat https://stackoverflow.com/questions/25455969/spring-boot-with-embedded-tomcat-behind-apache-proxy
其中,解决方案已经列出来了。我必须激活三个 apache2 mods:
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod headers
我将这些行添加到我的 Apache2 vhost 配置文件中,位于 ServerName 的正下方VirtualHost
tag:
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
财产。
作为奖励,这也意味着我们不再需要在防火墙中打开引导应用程序使用的端口。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)