问题标签 [haproxy-ingress]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
223 浏览

kubernetes - 为什么不遵守入口规则?而是到达默认后端

我在 Kubernetes AKS 上安装了 HA 代理入口。我安装它使用:

我的入口是这样的:

但是,当我将浏览器指向https://a.raven.aedas-prev.inercya.com时,我得到了默认后端。HA 代理不会将请求反向代理到 ravendb-0 服务。

我做错了什么?我该怎么做才能使入口工作?

Pod 正在运行:

并配置服务:

0 投票
2 回答
369 浏览

lua - 在 haproxy 路由请求之前从 lua 执行 http 请求

我有一个需要路由请求的 Lua 代理。每个请求目标都是基于另一个 HTTP 请求的响应建立的,该请求带有来自初始请求的标头。我的理解是 HAProxy 是一个事件驱动的软件,所以阻塞系统调用是绝对禁止的,我的代码被阻塞是因为正在做一个 HTTP 请求。

我在请求后读到了关于屈服的信息,但我认为这无济于事,因为 HTTP 请求已经启动。执行请求的库是https://github.com/JakobGreen/lua-requests#simple-requests

如何将我的代码转换为非阻塞的?

0 投票
0 回答
42 浏览

load-balancing - HAproxy 无法到达后端

我正在尝试解决我在本地网络上建立的简单演示。我有 2 个运行 Vagrant 的虚拟机:

在 A 上,通过 Docker 和 Apache Web-Server 运行一个 Jenkins 实例,只有一个简单的 index.html 页面。

对于机器 B,我正在尝试使用以下配置通过 Haproxy 公开它们:

将此配置文件放入/etc/haproxy/haproxy.cfg

我重新启动HAProxy:systemctl restart haproxy

不幸的是,当连接到192.168.121.11:9000我得到一个 503 并且当我连接到192.168.121.11:9000/apache我得到一个 400 错误请求。

当然,web-server 和 Jenkins 实例都在机器 A 上完全运行,它们可以通过192.168.121.10:8000192.168.121.10:80

任何帮助都会非常有帮助。

谢谢 !

0 投票
0 回答
179 浏览

haproxy - 带有 cert-manager 和 clusterIssuer 的入口以不安全模式打开

我正在尝试在我安装了 haproxy 入口控制器的 AKS 群集中为服务类型为 clusterIP 的服务创建入口。我已经在集群中部署了 cert-manager 和 clusterIssuer。我附上了我用过的 ingress.yaml 文件的内容,

问题是,提到的秘密 nginx-ingress-tls 在 10-15 秒后被创建和删除。因此,入口网址“test.xyz.com”未在浏览器中通过安全连接 (https) 打开。

在入口控制器 pod 中,我发现了类似的日志,

由于在入口“webclient/nginx-ingress”上读取秘密“nginx-ingress-tls”时出错,使用默认证书:未找到秘密 webclient/nginx-ingress-tls。

需要注意的是,使用前缀为 test.xyz.com(例如:nginx.test.xyz.com)的任何 url 创建的入口都可以正常工作,没有任何问题。

谁能解释一下我的这种行为。提前致谢!

0 投票
2 回答
241 浏览

kubernetes - 将命名空间解析为值文件

我正在尝试将其添加{{ .Release.Namespace }}到一个字符串中,但它在字面上被解析为只是{{ .Release.Namespace }}而不是命名空间本身。我试过使用引号 ( ") 和 using tpl,但没有任何效果。我正在使用 Helm v3.5.4。

在上下文中:

Wholevalues.yaml可以在这里找到,上面的代码片段也可以在这里找到
我正在使用HAProxy Ingress Helm Chart

在某些部分,如您在 中看到的values.yaml,也在使用{{ .Release.Namespace }},但这些都被解析得很好(例如 TCP 选项)。

提前致谢!

0 投票
1 回答
244 浏览

timeout - 了解 haproxy 入口控制器中的超时

我在 GKE 集群中使用 HAProxy 作为入口控制器。
这是我的配置的样子,对于我想在 X 毫秒内超时的服务:

我想了解客户端和 http-request 超时之间的区别是什么,哪个优先于另一个。
如果我收到一个请求,它会在 20 毫秒(客户端超时)或 40 毫秒(http 请求超时)吗?

0 投票
1 回答
603 浏览

ssl - HAProxy TCP (443) 不同后端端口的负载平衡

我正在实现一个前端负载均衡器,它将进入端口 80 和 443 的流量传递到不同的后端端口。SSL 终止发生在后端,HAproxy 不应该参与任何事情,除了将来自前端端口 80 和 443 的流量转发到各自的后端端口。

端口 80 转发似乎很好,并且 443 未按预期工作并导致 SSL 握手失败。甚至我的后端服务也没有出现在网络浏览器上,并警告说这是不可信的。我不知道为什么会发生这种情况,而且我的 HAProxy 体验并不高,以下是当前配置。如果我错了,请纠正我。

HAProxy 安装在 Ubuntu 18.04.5 LTS 上

在默认部分之后配置

后台故事:

我有一个 k8s 集群和 traefik 入口,它在每个节点上作为 DaemonSet 运行,minions 是我的后端服务器。CertManager 可以通过让我们在入口资源中加密 ACME 协议来进行证书自动化,因此 SSL 终止应该通过入口资源发生。

我已经完成了证书,一切看起来都很完美,因为我已经在 AWS 上使用 TCP 负载均衡器实现了类似的设置,并且一切都在完美运行并运行 prod 工作负载。

所以,我需要提一下,后端服务都很好并且正在运行。在此,我用 HAProxy 替换了 AWS 负载均衡器,并且需要实现相同的功能。

请帮助我解决这个问题,因为我正在努力解决这个问题,但仍然没有解决这个问题。

谢谢你。

0 投票
0 回答
283 浏览

amazon-s3 - 通过 Haproxy 反向代理 S3 存储桶

我正在尝试使用 Haproxy(特别是 Haproxy Ingress)为我的 S3 存储桶(我正在使用 DigitalOcean Spaces)设置反向代理。

经过一些试验和错误,我得到了代理的某个地方,但它还不能正常工作。
GET 请求工作正常,但是,PUT 请求(如 putObject)不起作用,因为我收到错误“403 - SignatureDoesNotMatch”。不幸的是,我似乎无法找到原因,并且我已经进行了广泛的搜索。

我现在的后端如下:

尝试仅使用“.ams3.digitaloceanspaces.com”来推翻服务器,但这没有用。

我认为这与标题有关,但我尝试添加“授权”和“连接”标题,但它们似乎都不起作用。

我也在使用后端协议“h2-ssl”,因为没有它,它就不能代理。

提前致谢!


取得了一些进展,签名版 v4 不起作用,但 v2 可以。
但是,如果我是正确的,docker 注册表使用 v4,我希望它与最新标准兼容。

我对 S3 了解不多,我目前正在阅读有关身份验证差异的文档,但欢迎提供任何帮助!


所以,经过一番调查,签名版本 v4 使用请求 URI 来计算签名。当存储桶本身计算相同的签名时,请求 URI 是不同的,因为它侦听另一个 URI。

我见过一些人在 nginx 处理请求时使用 nginx 重新计算签名,但还没有找到在 Haproxy 中执行此操作的方法。

现在最好的方法是使用签名版本 v2,但是,对于大多数 S3 存储桶提供商来说,它可能已被弃用。

0 投票
2 回答
301 浏览

kubernetes - HAProxy 入口控制器服务更改了 GCP 上的 IP

我在 GKE 集群中使用 HAProxy 作为入口控制器。并将 HAProxy 服务公开为 LoadBalancer 服务(内部)。

最近,我遇到了一个问题,HA-Proxy 服务更改了它的 EXTERNAL-IP,并且流量停止路由到 HAProxy。这个问题在不同的日子里发生了多次(现在它已经停止了)。我必须手动将新的外部 IP 添加到该负载均衡器的前端,以允许流量到 HAProxy。
HAProxy 有两个 pod 运行,并且都运行了好几天,它们的日志中没有任何内容。我认为它与服务或 GCP LB 相关,而不是 HAProxy 本身。
恐怕我没有任何与此相关的日志。

我仍然不知道,是什么导致服务IP发生变化。由于最近没有任何变化,并且集群和所有服务都正常运行了很多天,所以突然发生了这种情况。

有没有人之前遇到过类似的问题?或者我能做些什么来避免将来出现这样的问题?
什么可能导致 IP 发生变化?

这是我的服务的配置方式:

找到一些日志:

0 投票
1 回答
326 浏览

lua - 如何在路由请求之前从 haproxy 中的 lua 发送 https 请求?

我使用这里概述的 haproxy Socket 类https://www.haproxy.com/blog/5-ways-to-extend-haproxy-with-lua/#actions从 lua 代码向外部服务发出http请求(参见下面的代码)。

  1. 如何向服务发出https请求?
  2. 是否可以指定域名而不是要连接的服务的 IP 地址?

任何帮助表示赞赏。