标签: haproxy

mac osx 上的 haproxy 日志记录

有谁知道 haproxy 在 mac osx 上将日志写入哪里?我想使用 记录进入我的 Rails 后端的安全 Cookie capture cookie _secure len 32

我检查了 Console.app,但日志没有显示在那里。

macos logging haproxy

5
推荐指数
1
解决办法
5266
查看次数

以编程方式更改 haproxy 配置文件

有没有java程序或api可以改变haproxy的配置文件的内容?例如动态添加/删除一些配置。

java haproxy

5
推荐指数
1
解决办法
2159
查看次数

当 Haproxy 正常重启时,它仍然会向后端服务器调度连接

我们使用 haproxy 在 tcp 模式下进行 thrift(rpc) 服务器负载平衡。但是当后端服务器重新启动时,我们遇到了一个问题。

当我们的 thrift(rpc) 服务器重新启动时,它首先停止侦听 haproxy 配置为连接的端口,但仍会处理正在运行的请求,直到它们全部完成(正常重启)。

因此在重启期间,仍然有客户端通过haproxy到后端服务器建立的连接套接字,而后端服务器不接受任何新连接,但haproxy仍然认为该后端服务器是健康的,并将向该服务器调度新连接。分派到该服务器的任何新连接都将花费相当长的时间来连接,然后超时。

有什么方法可以通知 haproxy 服务器已停止侦听并且不向其分派任何连接吗?

我尝试过以下操作:

  1. timeout connect设置为非常低 + redispatch+retry 3
  2. option tcp-check

两者都不能解决问题。

haproxy

5
推荐指数
0
解决办法
1026
查看次数

haproxy无法加载ssl私钥

我在 centos 7 上使用 haproxy 1.5.2 时遇到问题。我创建了一个包含私钥和自签名证书的 pem 文件,但在配置它时,haproxy 无法启动。

当我按以下顺序获得证书时:

-----BEGIN PRIVATE KEY----
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

Feb 20 14:27:29 test.net haproxy-systemd-wrapper[2217]: [ALERT] 050/142729 (2218) : Proxy 'test': no SSL certificate specified for bind '*:443' at [/etc/haproxy/haproxy.cfg:64] (use 'crt').
Feb 20 14:27:29 test.net haproxy-systemd-wrapper[2217]: [ALERT] 050/142729 (2218) : Fatal errors found in configuration.
Feb 20 14:27:29 test.net haproxy-systemd-wrapper[2217]: haproxy-systemd-wrapper: exit, haproxy RC=256
Feb 20 14:30:11 test.net systemd[1]: Starting HAProxy Load Balancer...
Feb 20 14:30:11 test.net …
Run Code Online (Sandbox Code Playgroud)

ssl haproxy

5
推荐指数
0
解决办法
5660
查看次数

HAProxy动态acl

在 HAProxy 中,是否可以为虚拟主机重定向编写 ACL(适用于所有虚拟主机的一条规则)

例子说

如果标头包含backend-name.domain.com---> 使用带有名称的后端backend-name

它应该像这样工作,

a.domain.com -----> backend a
b.domain.com -----> backend b
Run Code Online (Sandbox Code Playgroud)

无需分别为 a 和 b 明确编写 ACL。

在这里,我需要为所有基于域的路由使用一个 ACL,因为我使用通配符 DNS 将 domain.com 的所有子域解析为 HAProxy IP。

我动态添加和删除后端,很难使用脚本为每个新前端编写 ACL。

提前致谢。

acl haproxy

5
推荐指数
1
解决办法
1327
查看次数

HAProxy 平衡器使用 url_param 值?

我有 3 个不同的 Restful 服务器:w1、w2、w3

引用我的负载均衡器的客户端提供名为“ip”(ipv4) 的 url 参数。请求之间的 url 参数 ip 是不同的:

curl -XGET http://localhost:8080/api/v1/link?ip=x.x.x.x
Run Code Online (Sandbox Code Playgroud)

我想使用 HASH 算法根据 ip 参数平衡 HAProxy 到 w1、w2、w3。

HAProxy 配置如下:

global
    #daemon
    maxconn 3000

defaults
    mode http
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

frontend http-in
    bind *:80
    default_backend workers

backend workers
    balance url_param ip
    hash-type consistent
    server w1 localhost:8080 weight 1 maxconn 1000 check
    server w2 localhost:8081 weight 1 maxconn 1000 check
    server w3 localhost:8082 weight 1 maxconn 1000 check

listen …
Run Code Online (Sandbox Code Playgroud)

hash load-balancing haproxy

5
推荐指数
1
解决办法
2808
查看次数

如何在 REDIS 从机之间平衡只读指令的负载?

我已经设置了 REDIS 复制(1 个主站 + 2 个从站)以及 3 个哨兵和 1 个 HAProxy 负载均衡器。它可以工作,但除了故障转移之外,我想在从属设备之间平衡只读指令的负载。可以使用HAProxy吗?这是我的 HAProxy 配置的一部分:

backend bk_redis
option tcp-check
tcp-check connect
tcp-check send PING\r\n
tcp-check expect string +PONG
tcp-check send info\ replication\r\n
tcp-check expect string role:master
tcp-check send QUIT\r\n
tcp-check expect string +OK
server redis_1 localhost:6379 check inter 1s
server redis_2 localhost:6380 check inter 1s
Run Code Online (Sandbox Code Playgroud)

(据我所知)这将只是将所有流量重定向到当前主服务器,而我想在这里进行负载平衡。

haproxy redis

5
推荐指数
1
解决办法
845
查看次数

当中间有负载均衡器时如何跟踪浏览器的IP

在我的 python 应用程序中,浏览器向我的服务器发送请求以获取某些信息。我需要跟踪发出请求的源的 IP。通常,我可以通过此调用获取该信息:

request.headers.get('Remote-Addr')

但是,当我在 HaProxy 这样的负载均衡器后面部署应用程序时,给出的 IP 是负载均衡器的 IP,而不是浏览器的 IP。

当服务器位于负载均衡器后面时,如何获取服务器上浏览器的 IP?

我的案例的另一个问题是我通过 HAProxy 使用从浏览器到我的服务器的 TCP 连接,而不是使用 http。

python ip haproxy

5
推荐指数
1
解决办法
355
查看次数

是否可以使用 HAProxy - Lua 管理用于速率限制的粘性表?

我使用 HAProxy 作为负载平衡器,并且我有一个 lua 脚本,它将后端名称返回到 haproxy.cfg。想为我的应用程序实施速率限制。

我知道我们可以在 haproxy.cfg 中使用粘性表(如下)来实现速率限制。


Stick-table type ip size 1m expire 60s store http_req_cnt

acl 超出限制 hdr_ip(x-forwarded-for,-1),table_http_req_cnt(incoming) ge 10

http-request tarpit 如果超出限制

http-request track-sc0 hdr_ip(x-forwarded-for,-1)


想使用 lua 实现相同的功能。是否可以使用 lua 访问该粘性表。

提前致谢。

lua haproxy internal-load-balancer

5
推荐指数
0
解决办法
377
查看次数

基于 URL 的具有亲和性的服务代理

我正在寻找具有基于 URL 的亲和性的服务代理(或负载平衡器)。

这是用于在集群内部的 Kubernetes 中使用的:我正在寻找一个“内部”负载均衡器,我不需要将服务暴露在外面。

默认情况下,Kubernetes 中的 Service 使用“循环”算法。

我想要基于 HTTP URL 的一部分的一些亲和性:第一个请求将转到随机 pod,使用相同 URL 的后续请求将(最好)转到同一个 pod。

我已经阅读了一些关于基于 sourceIP 的亲和性的文档,这是否基于 URL 存在?

我已经快速阅读了 Envoy,也许使用“Ring hash”负载平衡算法就可以了,但我不知道是否可以基于 URL 进行散列。

也许使用 kube-proxy 的“ipvs”代理模式(https://kubernetes.io/docs/concepts/services-networking/service/#proxy-mode-ipvs)可以,但我只看到“目的地散列”和“源哈希”作为负载平衡算法,我也不知道如何配置它。

haproxy kubernetes envoyproxy

5
推荐指数
1
解决办法
884
查看次数