标签: haproxy

具有故障转移功能的 Softlayer HAProxy

我在 Softlayer 上有 2 个虚拟服务器,都运行 HAProxy。我正在尝试使用 keepalived 设置故障转移。每个服务器都有一个私有IP和一个公共IP,它们在同一个VLAN上。我已经为 keepalived 尝试了许多不同的设置,但是在 master 上停止 HAProxy,它不会故障转移到 BACKUP。

我读到不支持多播,因此我已将设置更改为单播。现在,备份/主服务器上的设置基本上是这样的:

vrrp_script chk_haproxy {
  script "pidof haproxy"
  interval 2
}

vrrp_instance VI_1 {
  debug 2
  interface eth1
  state MASTER
  virtual_router_id 51
  priority 101
  unicast_src_ip 1.2.3.4        # My IP
  unicast_peer {
    5.6.7.8                   # peer IP
  }
  track_script {
    chk_haproxy
  }
}
Run Code Online (Sandbox Code Playgroud)

其中 MYIP 是 conf 文件所在服务器的公共 IP 地址,PEERIP 是对等方的公共 IP 地址。它仍然不起作用。在 master 上停止 HAProxy,它不会故障转移到备份。

我想知道是否有人在 Softlayer 上设置了带故障转移的 HAProxy,他们是如何实现的?

failover haproxy keepalived

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

如何使用 nginx 或 haproxy 在一台服务器上使用两个 ssh 守护进程

首先,我是 haproxy 和 nginx 的新手。我想知道是否可以使用nginx或haproxy来接收所有ssh请求,并根据域名将它们转发到两个不同的ssh守护进程。如果可能的话,这两者中的哪一个是最适合这项工作的工具,我将如何配置该工具来做到这一点?

ssh nginx haproxy

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

使用“mode tcp”时如何根据URI选择不同的后端

我正在使用 haproxy 版本 1.6.2

我已经使用下面的配置启用了 http2,我需要使用“模式 tcp”。但是一旦我从“模式 http”切换到“模式 tcp”,我就无法使用 acl path_beg

frontend websocks
    mode tcp
    bind *:443 ssl crt /etc/certs/domain.pem alpn h2,http/1.1 ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH; no-sslv3
    timeout client 1h
    acl is_api path_beg /api
    acl is_xmpp path_beg /chat
    use_backend api_backend if is_api
    use_backend xmpp_backend if is_xmpp
    use_backend fe_public_tcp if { ssl_fc_alpn -i h2 }
    default_backend fe_public

fe_public
    server fe1 localhost:444 weight 1 maxconn 4096 check inter 10000 ssl verify none        

fe_public_tcp
    mode tcp
    server fe1 localhost:445

api_backend
    server api1 localhost:9966

xmpp_backend
    server …
Run Code Online (Sandbox Code Playgroud)

http https tcp haproxy

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

设置 haproxy 和清漆时出错

我一直在关注 haproxy 博客上关于如何使用 haproxy 安装清漆的教程。(链接) 这部分的 haproxy 配置设置有问题:

frontend ft_web_static
  bind 10.0.1.3:80
  monitor-uri /haproxycheck
  # Tells Varnish to stop asking for static content when servers are dead
  # Varnish would deliver staled content
  monitor fail if nbsrv(bk_appsrv_static) eq 0
  default_backend bk_appsrv_static
Run Code Online (Sandbox Code Playgroud)

当我重新启动 haproxy 时,它给了我这个错误:

[root@ch]# service haproxy restart
[ALERT] 348/004936 (28582) : parsing [/etc/haproxy/haproxy.cfg:282] : error detected while parsing a 'monitor fail' condition : no such ACL : 'nbsrv(apache2_static)'.
Run Code Online (Sandbox Code Playgroud)

我猜有什么问题nbsrv(bk_appsrv_static) eq 0。文章后评论区也有人提出了这个问题,但没有人给出解决方案。任何人都可以弄清楚设置中是否有拼写错误或错误?

这是完整的配置:

# On Aloha, …
Run Code Online (Sandbox Code Playgroud)

varnish haproxy

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

是否可以使用云中的虚拟服务器进行直接服务器返回 DSR 负载平衡?

如果我的所有液滴都来自同一个数据中心,是否可以在云中进行这种负载平衡,例如在 Digital Ocean 中?或者我是否需要某种物理设备来进行这种第 4 层负载平衡?

如此处所示:http : //blog.haproxy.com/2011/07/29/layer-4-load-balancing-direct-server-return-mode/

我喜欢负载均衡器只是分发然后服务器直接将请求回复给客户端的想法。这是否可以在没有物理硬件的情况下完成,但使用 haproxy 之类的软件?

load-balancing haproxy

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

绑定接口的 Haproxy 配置

我有一个关于我未来配置的设置问题。我有一个带有 2 个网络接口(eth0 和 eth1)的 vm jessie,我想告诉我的 haproxy 配置从 eth1 绑定流量。有人可以帮忙吗?

haproxy

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

如何在HAProxy中用子域重写url

当用户请求http://sub1.example.com/a/b/c 时,我需要将此请求的主机名标头替换为 example.com 并将路径重写为http://example.com/sub1/a/b/丙。我尝试使用 reqrep,但找不到如何将子域部分添加到路径中。

reqirep ^Host:\ (.*[^\.])(\.example\.com)      Host:\ example.com
reqrep ^([^\ :]*)\ (.*) \1\ /???/\2
Run Code Online (Sandbox Code Playgroud)

我找到了 %[req.hdr(host),lower,field(1,'.')] 方法来获取子域名,但我不能在 reqrep 方法的替换部分使用它。在这部分如何使用变量?

rewrite haproxy

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

HAProxy 重定向多个域

我只有一个公共 IP 地址和三个 Web 服务器在LAN. 我想像这样将流量重定向WAN到 Web 服务器,必须支持SSL/TLS流量重定向:

https://www.example.com (A Record)===> 1.1.1.1(Public IP) ===> 192.168.1.1(Web 1)

https://www.example.net (A Record)===> 1.1.1.1(Public IP) ===> 192.168.1.2(Web 2)
Run Code Online (Sandbox Code Playgroud)

HAProxy能完成这项工作吗?

web haproxy

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

双活应用服务器如何实现高可用?

我需要以这样一种方式设置我的应用程序,它使我的停机时间接近 0。我的一个数据中心在德克萨斯州,另一个在维加斯。现在,如果我在 TX 被认为是 PR 的服务器出现故障,所有流量都将转移到拉斯维加斯服务器,在我的情况下是 DR(灾难恢复)。

如果我们使用 HAProxy 或 NginX 等软件负载均衡器,使用 Keepalived(检查 DR 站点负载均衡器和 PR 站点负载均衡器之间的心跳),我们将最终设置主动-被动负载均衡以克服故障转移。在这里,我们的应用程序将处于 Active-Active 模式。

在此处输入图片说明

上图显示,所有传入流量都将到达负载均衡器的虚拟 IP(主动 PR 负载均衡器和被动 DR 负载均衡器,它们之间启用了心跳)。如果 PR 站点负载均衡器处于活动状态,那么它会将负载路由到 PR 站点 Portal 应用程序实例以及 DR 站点 Portal 实例(因为两个站点都处于活动状态),此时 DR 站点负载均衡器将处于空闲状态并不断监视其性能主动负载均衡器。如果 PR 站点出现故障,则 DR 站点将变为活动状态并自动指向 DR 站点 Portal 应用程序实例。

但我听说,使用 Keepalived 设置主动-被动负载平衡器的问题是,它在 LAN 中工作,但在 WAN 设置中无法工作。在我们的例子中,主动 PR 负载均衡器将在 TX,而被动 DR 负载均衡器将在维加斯。

那么,要通过故障转移设置实现 HA,我该如何使用软件负载平衡器?

domain-name-system nginx high-availability load-balancing haproxy

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

如何以最少的停机时间在 CentOS 上重新加载 HAProxy 配置?

当我更改 haproxy.cfg 时,目前我正在通过在 CentOS 上运行此命令来“应用”这些更改:

systemctl restart haproxy
Run Code Online (Sandbox Code Playgroud)

在 CentOS 上是否有更好的方法来做到这一点,而不涉及停机时间或最短停机时间(或连接重置)?

centos haproxy

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

当我进入维护模式时,HAProxy“选项重新调度”不起作用

我遇到了 HAProxy 无法将连接重新分配到服务器的问题。当我将服务器置于维护模式时,没有任何活动连接被断开/转移到其他活动服务器,这会导致我的最终用户超时。

我的配置如下:

    #---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    # to have these messages end up in /var/log/haproxy.log you will
    # need to:
    #
    # 1) configure syslog to accept network log events.  This is done
    #    by adding the '-r' option to the SYSLOGD_OPTIONS in
    #    /etc/sysconfig/syslog
    #
    # 2) configure local2 events to go to the /var/log/haproxy.log
    #   file. A line like the following can be added to
    #   /etc/sysconfig/syslog
    #
    #    local2.*                       /var/log/haproxy.log
    #
    log         127.0.0.1 …
Run Code Online (Sandbox Code Playgroud)

load-balancing haproxy

-1
推荐指数
1
解决办法
9892
查看次数