我正在尝试修改我当前的 haproxy 配置以支持 1 个服务器而不是其他服务器 (70%,15,15) 有谁知道这是否可能?阅读文档我看到了一个“重量”选项,但我有点厌倦了与生产服务器混在一起。
这是我当前的配置:
listen MySQL 10.10.10.14:3306
mode tcp
balance roundrobin
option persist
server sql1 10.10.10.4:3306
server sql2 10.10.10.5:3306
server sql3 10.10.10.6:3306
Run Code Online (Sandbox Code Playgroud) 我在 HAPROXY 设置后面有几台 Apache 2 机器,我尝试在这些 Apache 机器上设置 mod_evasive,同时还使用 mod_rpaf 来获取真正的 X-FORWARDED 客户端 IP。
出于某种原因,mod_evasive 获取并阻止了一些 ips(使用 ApacheBench 进行测试),但有些可以继续打开更多连接,并且基本上对我的服务器进行 DOS 处理。
知道什么可以在 mod_evasive 中从另一个 ip 中排除一个 ip 吗?考虑到它位于代理后面并且真实的客户端 ip 在 apache 日志中可见?
mod_evasive的定义是默认值时,DOSWhitelist设定为我们的子网掩码(192.168 。例如)。
rpaf 模块有 RPAFproxy_ips 定义和我们的 HAPROXY ip。有任何想法吗?
我将使用 HAProxy 作为负载平衡器来平衡 3 个应用程序服务器上的请求。但是如果平衡器服务器(HAProxy)在某个时候出现故障怎么办?我正在考虑克隆第一个平衡器,因此如果主要平衡器失败,另一个将取而代之。类似于 HSRP。
是否可以?如果是,如何?
在将我的头发拉出 DFS 之后,我突然想到了这个奇怪且具有潜在危险的想法,因此,可能我可以使用 HA-Proxy 来负载平衡服务器之间的文件共享。
我已经完成了一些补救数据包跟踪,看起来 TCP 端口 445 是使用 Windows 文件共享所涉及的唯一问题。多年来,我一直认为 UDP 139、135 等也至少参与建立连接 - 但显然不是!
所以我设置了一个基本的测试:
listen SMBTest *:445
mode tcp
server Smb1 172.16.61.201:445
server Smb2 172.16.61.202:445
Run Code Online (Sandbox Code Playgroud)
你永远不会猜到是什么......它有效???(!)
现在显然有关于文件服务器之间同步的全部问题(当然)。这可以通过一点 Robocopy 脚本轻松解决。
考虑到我只需要一个 HA 只读文件共享,文件锁定等不会有任何问题。
file-sharing samba load-balancing server-message-block haproxy
对至少 2-3 个运行大量 .NET 应用程序的 Windows 2008 R2 IIS Web 服务器进行负载平衡的最佳方法是什么?我的选择似乎是:
1) 基于硬件的网络设备负载平衡器,如 Cisco CSS
2) Windows NLB
3) 某种基于 linux 的代理,haproxy 或其他
这三台服务器作为 vSphere 场上的虚拟机,因此我能够在高负载时进行克隆以增加实例数。我控制插入 vSphere 主机的交换机(Cisco 3750),但不控制除此之外到客户端的交换/路由基础设施。
(1) 太贵了,可能对我的需求来说太过分了。我已经包含了这个,以防有人想出一种巧妙的方法在我现有的网络工具包上做到这一点,我对此表示怀疑。
(2) 似乎是明显的“内置”选项,但似乎对网络接口、多播和其他似乎不必要地复杂的东西相当繁琐。这也相当愚蠢,因为如果主机开始抛出 500 个错误或出现其他错误,它无法从池中删除主机
(3) 是最有趣的选项,因为它似乎提供了最大的灵活性和可定制性,而不必与网络打交道。但是,虽然我熟悉 lighttpd 等的反向代理功能,但我对其他选项(如 HAProxy)的了解并不多,它可能提供更多功能。
你会去哪个,有什么我没有想到的吗?
我有两个系统,两个都是虚拟机。配置为使用桥接网络。我正在尝试使用 keepalived 来管理 VIP 的所有权 - 10.190.1.230。我尝试了从源代码构建的两个版本的 keepalived-1.2.2 和 keepalived-1.2.1。
ServerA - RHEL5.2 x64 - 10.190.1.228 - PRIORITY 50
ServerB - RHEL6 x64 - 10.190.1.229 - PRIORITY 101
VIP - 10.190.1.230
Run Code Online (Sandbox Code Playgroud)
我的问题似乎是在 ServerB 上 keepalived 没有发送多播广告。它正在看到多播广告。来自服务器A:
[root@ServerB~]# tcpdump -vv -c 3 -i eth0 vrrp
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
10:18:10.760577 IP (tos 0x0, ttl 255, id 856, offset 0, flags [none], proto VRRP (112), length 40)
10.190.1.228 > 224.0.0.18: VRRPv2, Advertisement, vrid 151, …Run Code Online (Sandbox Code Playgroud) 如何在 haproxy (1.5dev19) 中为多个主机使用 ACL 规则,每个主机都有自己的 ssl 证书?
我有 3 个后端,多个域都在一个 IP 地址上。
nodejs (http/https/ws/wss)
nginx (http/https)(现在是 apache 的反向代理)
阿帕奇(http)
我想把 haproxy 放在他们之前,让它为 ssl 连接提供服务。是否可以使用 haproxy acl 或者我必须在 haproxy 前面使用像螺柱这样的东西?
就像是:
frontend http-in
bind *:80
acl host_domain1 hdr(host) -i domain1.lt
use_backend nginx_web_http if host_domain1
frontend http-in
bind *:443
acl host_domain1 hdr(host) -i domain1.lt
use_backend nginx_web_https if host_domain1
backend nginx_web_https
mode http
ssl crt /etc/ssl/domain1/ crt ./certs/ prefer-server-cipher
option httplog
option httpclose
server nginx 192.168.2.101:8080 check
backend nginx_web_http
mode http
option …Run Code Online (Sandbox Code Playgroud) 1.5 版中的新http-response add-header指令是该指令。正如文档中所写的那样- 这可以用于frontend,backend和listen。
我在一个frontend部分中尝试做的事情:
use_backend some_backend if some_condition
http-response add-header Vary Origin if some_condition
Run Code Online (Sandbox Code Playgroud)
但这没有效果。放置在该backend部分中的同一行工作得很好。有人可以帮助我理解,我在这里缺少什么吗?我不明白,为什么这在该frontend部分不起作用。
My guess would be that within the fronted there is no response yet and so the directive fails. I tried using it before and after die use_backend directive.
在 Ubuntu 14.04 x64 服务器上,Haproxy 使用 3.3 GB 内存和 6.8 GB 交换,同时处理 52k 连接。在大部分流量被重定向到另一个 haproxy 框之前,CPU 使用率也一直飙升至 100%。流量主要是持久性 TCP 连接。
pid = 3185 (process #1, nbproc = 1)
uptime = 0d 6h14m21s
system limits: memmax = unlimited; ulimit-n = 524341
maxsock = 524341; maxconn = 262144; maxpipes = 0
current conns = 54303; current pipes = 0/0
Running tasks: 1/54336
Run Code Online (Sandbox Code Playgroud)
注意到内存使用量在大约 50k 连接时急剧上升。ulimit -n设置为1048576。
问题:内存使用量是否异常高?我们怎样才能减少内存消耗?
我还从另一个问题中阅读了以下内容,是否相关?我应该如何检查 TCP 设置是否足够(对于持久 TCP 连接),以免导致内存使用量大幅增加?
At 54000 concurrent connections, you …Run Code Online (Sandbox Code Playgroud) 我试图让 HAproxy 1.5.x 信任机器 ( /etc/ssl/certs)信任存储中已有的任何证书颁发机构,而无需明确指定ca-file要信任的单个根颁发机构证书。我想避免给定后端服务器使用由不同机构颁发的证书并导致中断的情况,因为该后端服务器不再受信任——尽管 CA 位于机器信任存储中。
在文件的给定backend部分中haproxy.cfg,该server行有一个名为ca-file. 此选项指示 HAproxy 使用提供的权限验证后端服务器证书的权限。问题是这指向单个 CA。
我找到了这个ca-base选项。除非我弄错了,否则这只是避免必须ca-file在每个声明中指定完整路径的快捷方式。
haproxy ×10
linux ×2
ssl ×2
apache-2.2 ×1
failover ×1
file-sharing ×1
iis ×1
keepalived ×1
networking ×1
nlb ×1
redundancy ×1
samba ×1
tcp ×1
ubuntu ×1