问题标签 [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.
kubernetes - 为什么不遵守入口规则?而是到达默认后端
我在 Kubernetes AKS 上安装了 HA 代理入口。我安装它使用:
我的入口是这样的:
但是,当我将浏览器指向https://a.raven.aedas-prev.inercya.com时,我得到了默认后端。HA 代理不会将请求反向代理到 ravendb-0 服务。
我做错了什么?我该怎么做才能使入口工作?
Pod 正在运行:
并配置服务:
lua - 在 haproxy 路由请求之前从 lua 执行 http 请求
我有一个需要路由请求的 Lua 代理。每个请求目标都是基于另一个 HTTP 请求的响应建立的,该请求带有来自初始请求的标头。我的理解是 HAProxy 是一个事件驱动的软件,所以阻塞系统调用是绝对禁止的,我的代码被阻塞是因为正在做一个 HTTP 请求。
我在请求后读到了关于屈服的信息,但我认为这无济于事,因为 HTTP 请求已经启动。执行请求的库是https://github.com/JakobGreen/lua-requests#simple-requests
如何将我的代码转换为非阻塞的?
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:8000
和192.168.121.10:80
任何帮助都会非常有帮助。
谢谢 !
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 创建的入口都可以正常工作,没有任何问题。
谁能解释一下我的这种行为。提前致谢!
kubernetes - 将命名空间解析为值文件
我正在尝试将其添加{{ .Release.Namespace }}
到一个字符串中,但它在字面上被解析为只是{{ .Release.Namespace }}
而不是命名空间本身。我试过使用引号 ( "
) 和 using tpl
,但没有任何效果。我正在使用 Helm v3.5.4。
在上下文中:
Wholevalues.yaml
可以在这里找到,上面的代码片段也可以在这里找到。
我正在使用HAProxy Ingress Helm Chart。
在某些部分,如您在 中看到的values.yaml
,也在使用{{ .Release.Namespace }}
,但这些都被解析得很好(例如 TCP 选项)。
提前致谢!
timeout - 了解 haproxy 入口控制器中的超时
我在 GKE 集群中使用 HAProxy 作为入口控制器。
这是我的配置的样子,对于我想在 X 毫秒内超时的服务:
我想了解客户端和 http-request 超时之间的区别是什么,哪个优先于另一个。
如果我收到一个请求,它会在 20 毫秒(客户端超时)或 40 毫秒(http 请求超时)吗?
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 负载均衡器,并且需要实现相同的功能。
请帮助我解决这个问题,因为我正在努力解决这个问题,但仍然没有解决这个问题。
谢谢你。
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 存储桶提供商来说,它可能已被弃用。
kubernetes - HAProxy 入口控制器服务更改了 GCP 上的 IP
我在 GKE 集群中使用 HAProxy 作为入口控制器。并将 HAProxy 服务公开为 LoadBalancer 服务(内部)。
最近,我遇到了一个问题,HA-Proxy 服务更改了它的 EXTERNAL-IP,并且流量停止路由到 HAProxy。这个问题在不同的日子里发生了多次(现在它已经停止了)。我必须手动将新的外部 IP 添加到该负载均衡器的前端,以允许流量到 HAProxy。
HAProxy 有两个 pod 运行,并且都运行了好几天,它们的日志中没有任何内容。我认为它与服务或 GCP LB 相关,而不是 HAProxy 本身。
恐怕我没有任何与此相关的日志。
我仍然不知道,是什么导致服务IP发生变化。由于最近没有任何变化,并且集群和所有服务都正常运行了很多天,所以突然发生了这种情况。
有没有人之前遇到过类似的问题?或者我能做些什么来避免将来出现这样的问题?
什么可能导致 IP 发生变化?
这是我的服务的配置方式:
找到一些日志:
lua - 如何在路由请求之前从 haproxy 中的 lua 发送 https 请求?
我使用这里概述的 haproxy Socket 类https://www.haproxy.com/blog/5-ways-to-extend-haproxy-with-lua/#actions从 lua 代码向外部服务发出http请求(参见下面的代码)。
- 如何向服务发出https请求?
- 是否可以指定域名而不是要连接的服务的 IP 地址?
任何帮助表示赞赏。