【问题标题】:Expose spring actuator health endpoint on a different is a good thing or bad thing?在不同的地方暴露弹簧执行器的健康端点是好事还是坏事?
【发布时间】:2020-05-20 13:57:00
【问题描述】:

Based on 48.3 Customizing the management server port

使用默认 HTTP 端口公开管理端点是 基于云的部署的明智选择。但是,如果您的 应用程序在您自己的数据中心内运行,您可能更愿意公开 端点使用不同的 HTTP 端口。

为执行器健康端点运行不同的端口有什么价值?在什么样的场景下?

一般来说,一个端口用于所有服务端点是否足够好? 在不同的标准实现上实现设置健康端点吗?

【问题讨论】:

    标签: spring-boot spring-security spring-boot-actuator


    【解决方案1】:

    为什么您可能希望在不同端口上公开执行器端点与应用程序前面的负载平衡器/防火墙有关。

    假设您在端口 8080 上有 api。您的防火墙将使用端口 80 并将流量定向到端口 8080。

    为什么不在我们的spring应用程序上直接暴露80端口呢?在linux中打开1024或以下端口需要root帐户,因为下面的端口是敏感端口。所以一个原因是您不想以 root 身份运行您的应用程序。

    但是为什么然后执行器在不同的端口上,如果您有执行器可以说是 8081 那么您只能从防火墙后面的网络内部访问那些执行器(因为防火墙仅打开端口 80 用于外部连接)和没有其他人可以检查您的服务的健康状态、内存等。

    【讨论】:

      【解决方案2】:

      可能有不同的原因,有些是技术性的,有些不是:

      1. 您的安全部门制定了一项政策,即任何“管理”人员(执行器当然属于此类)都不能共享应用程序的默认端口。所以你只能忍受 :) 我在一家相当大的公司中看到过,所以这不是开玩笑。

      2. 1234563喜欢分开。
      3. 你有一些网络设备来路由你的请求,它可以很容易地禁止来自最终用户的某个端口的请求,但它不能对 URL 部分进行操作:

      http://host:port/api/v1/business-stuff
      http://host:port/health
       --> Hard / impossible to configure routing
      as opposed to:
      http://host:port1/api/v1/business-stuff
      http://host:port2/health
       --> easy - open port1 for end users, don't open port2 to the out world
      

      毕竟弹簧靴有很多选择,你应该决定最适合你的

      【讨论】:

        猜你喜欢
        • 2021-05-18
        • 1970-01-01
        • 2020-06-17
        • 2020-04-11
        • 1970-01-01
        • 2020-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多