如何使用 ClusterIP 从 API pod 中获取 HTML

问题描述 投票:0回答:1

所以我正在运行一个带有简单 HTML 代码的前端 (lighttpd) 容器,我尝试从另一个充当我的 node.js API 的 pod 中获取名称,我可以使用curl 从 lighttpd pod 连接到 API但当我在浏览器中运行时,无法从 HTML 代码解析 URL。

我已经从这篇文章中找到了原因,但现在我一直在试图弄清楚如何处理这个问题。有没有一种方法可以从 pod 内而不是浏览器中解析 URL,或者如何我是否可以使用 NodePort 来执行此操作?

    <script>
      // fetch user from API
      fetch("http://nodejs-service:8888/user")
        .then((res) => res.json())
        .then((data) => {
          // get user name
          const user = data.name;
          // display user name
          document.getElementById("user").innerText = user;
        });
    </script>

我尝试将工作节点的 IP 放在那里,但这也不起作用,而且我认为该地址也可以更改,所以这不是一个好的解决方案。

javascript kubernetes lighttpd kind
1个回答
0
投票

通用解决方案是拥有公共 DNS 名称

api.example.org

您可以使用 lighttpd 作为反向代理,将 api.example.org 的流量定向到特定的内部服务。

根据您所做的事情,lighttpd 有一些额外的选项:

lighttpd mod_proxy有一个指令

proxy.header
,它可以对请求标头响应标头进行一些重写,但不能重写请求或响应正文内容。

lighttpd mod_magnet 允许编写自定义 lua 脚本,该脚本可以修改请求和响应标头,还可以对响应正文执行任意更改。

© www.soinside.com 2019 - 2024. All rights reserved.