当前位置: 首页 > 知识库问答 >
问题:

如何在端口443上运行Spring Boot

李昱
2023-03-14

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

一些研究告诉我,部署一个侦听端口号低于1024的Spring启动应用程序是不允许的。我在这个问题上发现的线程通常说“使用1024以上的端口号”,海报很高兴地走开了。我已经有了,需要想出一个使用端口443的解决方案。

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

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

共有2个答案

云俊名
2023-03-14

好吧,我设法用一种非常简单优雅的方式自己解决了这个问题。在这个过程中,我还解决了Spring boot应用程序必须在URL中使用端口号来调用的问题,这个问题一直困扰着我。

我找到了这个线程:Spring Boot,在Apache代理后面嵌入了Tomcat

在其中,解决方案几乎已经列出。我必须激活三个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应用程序使用的端口号,如服务器中配置的那样。端口属性。

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

易淳
2023-03-14

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

除了Apache2之外,还有:

    < Li > nginx:https://www.nginx.com/ <李>哈普罗西:https://www.haproxy.org/

可能还有很多,但我到目前为止用过的3个。

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

 类似资料:
  • 问题内容: 我的目标是在端口80上运行Node.js。这是因为我发现node.js被某些网络阻止,这些网络不允许来自任何其他端口的流量。 看来最好的方法是通过Node.js代理Apache。我已经尝试使用node-http- proxy 来做到这一点,但是我没有任何运气。 我正在使用的代码在这里: 但是我一直收到端口80的错误“地址正在使用”。我一定做错了。 如何使用node-http-proxy

  • 我正在尝试在Kubernetes上设置Istio作为入口控制器。问题是,我的两个应用程序似乎可以从Istio ingress controllers节点端口访问(例如,http://[host]:31380/application1和http://[host]:31380/application2),但不能从443/80访问。 我是Kubernetes和Istio的新手,所以我使用https://

  • 问题内容: 我有一个通过端口5000运行的Flask服务器,很好。我可以在http://example.com:5000上访问它 但是是否可以在http://example.com上简单地访问它?我假设这意味着我必须将端口从5000更改为80。但是当我在Flask上尝试使用该端口时,运行该错误消息。 连续lsof -i :80收益 我需要先杀死这些进程吗?这样安全吗?还是有另一种方法可以让Flas

  • 问题内容: 我正在运行Ubuntu 11.10,并已在该系统上安装Jenkins。 我看过一些有关如何设置反向代理(Apache,Nginx等)的教程,但是,这是专门用于jenkins的VM,我想让jenkins在端口80上运行时尽可能保持精简。 我发现了新贵的配置,并将端口修改为80 当我通过启动jenkins时,显示它运行了几秒钟然后终止。 这是因为jenkins 在特权端口上以用户身份运行吗

  • 我有一个通过5000端口运行的烧瓶服务器,它很好。我可以访问http://example.com:5000 但是是否可以简单地在http://example.com上访问它呢?我想这意味着我必须把端口从5000改为80。但当我在Flask上尝试时,我运行它时会得到这个错误消息。 运行返回 我需要先干掉这些进程吗?安全吗?或者有没有另一种方法可以使Flask在端口5000上运行,但可以用某种方式重定

  • 问题内容: 我正在研究Java RMI。我在端口2028上运行rmiregistry几乎没有问题,因为我已经使用它运行了我的测试程序。我可以使用其他端口运行程序,但我想知道,如何关闭在特定端口上运行的rmiregistry? 问题答案: 如果您想在编程中做到这一点,我们可以做以下事情: 这是我们的JMXServer类的完整代码。我们在创建其中两个并完全注销它们时遇到了问题,因此我们确保在不同的端口