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

http请求在部署的spring boot App中是如何工作的?

越俊驰
2023-03-14

有人能解释一下托管是怎么工作的吗?在我的spring boot应用程序中有嵌入式tomcat服务器。据我所知,spring应用程序与tomcat一起运行,tomcat使用某个端口,例如8080,并侦听到达该端口的请求(当至少部署在本地时)localhost:8080。我可以从运行在localhost:3000上的前端应用程序发出请求,tomcat将接收这些请求,找到映射到URL的控制器,前端请求被指向“/user”或“/myposts”或其他什么,该控制器运行代码,与db对话,将数据插入响应,然后tomcat将其发送回前端。

如果我把我的应用部署到一些托管服务上,比如Google cloud,spring的应用还能和tomcat一起运行吗?在这种情况下,tomcat将在哪个端口上运行,我的前端将向何处发送请求?到google cloud为我的项目设置的子域?我需要在哪里配置SSL/HTTPS?我的前端会通过httpsendpoint发送安全请求到google子域,然后通过http(不安全的,内部托管服务器)将这些请求中继到部署的spring应用程序吗?或者怎么做?

共有1个答案

卓学智
2023-03-14

最简单的方法之一就是将一个实例(ssh)旋转到该实例中,并以在机器上运行的方式运行spring boot应用程序。所有的工作方式都与云实例上的工作方式相同。您的spring boot应用程序仍然在tomcat中运行,它仍然监听端口8080。唯一的区别是主机名不再是localhost,而是该实例的DNS名。您可以在控制台上找到DNS名称。

如果你想在你的spring boot应用程序中“原生地”启用https,你需要得到一个SSL证书。或者,您可以在云实例前面设置一个负载均衡器或API网关,为您完成SSL终止。在这种情况下,您的前端将发送请求到负载均衡器或API网关,而不是您的spring boot应用程序。它们接受https请求,并将其转换为http请求发送到你的spring boot App。

 类似资料:
  • 问题内容: 我正在使用Eclipse服务器功能进行热代码部署。使用tomcat作为Web服务器。但是我不确定它是如何工作的。我有自己的理解,它必须如何在内部工作。 我的理解:- 当开发人员更改代码(例如,类Employee)时,Eclipse将在正确的位置(必须是特定的Web /应用服务器,将其称为热部署目录(HDD))放置/发布修改后的已编译类。 。现在将显示Web服务器特定的类加载器。它在HD

  • 我试图使用cURL获取一个HTTP请求响应,这很好。然而,当我在Python中使用“请求”包时,我没有得到任何响应(它只是超时,没有错误或返回响应)。 我的cURL代码如下: 当我在cURL代码中使用-v时,我得到以下消息: 试图144.126.138.12... TCP_NODELAY集 连接到144.126.138.12(144.126.138.12)端口17001(#0) POST/api/

  • 问题内容: 我正在使用nodejs和expressjs。我想知道clientRequest对象中是否有类似的东西。我想为Web链接构建baseUrl。因此,如果请求是通过https完成的,我想在所有链接中保留https。 问题答案: 编辑: 对于Express,它更安全,建议使用(如@Andy在下面建议)。尽管它使用类似的实现,但将来可以安全使用,并且还可以选择支持标头。 话虽如此,对于您的用例而

  • 问题内容: 我知道为什么以及如何在jQuery AJAX请求中使用。 但是我需要的是它如何同步工作?这背后的魔力是什么? 问题答案: 因为本机对象提供了发出同步请求的可能性: async 可选的布尔参数,默认为true,指示是否异步执行该操作。 您可以通过暂停运行JS的线程来假定这样做。

  • 我使用useAuthState()钩子从“react firebase hooks/auth”进行身份验证。我很想知道它是如何工作的。它是存储cookie并在注销后清除,还是每次都请求firebase?如果是这种情况,它是如何获取某个特定人员登录的引用的,我的意思是它在请求中传递了什么参数(如uid、email)以及它是如何获得的。 https://i.stack.imgur.com/XiCQp.

  • 但当我运行它时,它会给我这个错误: E/AndroidRuntime:致命异常:主进程:com.example.webTestConnection,PID:23550 Android.os.networkonMaintHreadexception,Android.os.strictmode$AndroidBlockGuardPolicy.onNetwork(strictmode.java:1166