标签: load-balancing

apache 和 mod_proxy:我如何记录选择了哪个工人?

我们在几个 tomcat 前面运行一个 apache 反向代理。有时我们想知道请求被转发到哪个服务器。因为我们使用 mod_proxy_balancer。

我试过

 \"%{X-Forwarded-Server}i\"
Run Code Online (Sandbox Code Playgroud)

但这不起作用。它显示了我的负载均衡器 (apache) 的名称

我如何记录选择了哪个工人?

logging load-balancing mod-proxy apache-2.2

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

多个负载平衡服务器侦听单个 IP/端口?

假设我有一个完全工作的、负载平衡的应用服务器环境。

所有服务器都必须优雅地进行故障转移。使用应用程序服务器相对容易,但如何使用前端负载平衡器实现故障转移?

我可以让多个负载均衡器监听同一个 IP 和端口吗?我一发现旧的死了就必须运行新的吗?

failover ip load-balancing tcp

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

构建 SSL 服务器群

我对在下面引用的文章中构建架构很感兴趣。

我目前有一个价格适中的第 4 层负载平衡器,我的应用程序服务器是 SSL 端点。我想在我的负载平衡器和我的应用程序服务器之间放置一个 SSL 服务器群。然后我将在 SSL 场和我的应用服务器之间放置另一个廉价的负载平衡器,以进行第 7 层路由。

在此处输入图片说明

我的 Web 应用程序具有相当高的消费者流量,6 个服务器可以处理大约 50% 的容量。此外,我的基础设施流量比我的消费者流量大几个数量级。这是来自世界各地的数据,必须与我的 Web 应用程序实时集成。我总共有 18 个应用服务器来处理所有流量,另外还有 6 个数据库服务器。我将在接下来的 2 周内再添加 6 个应用服务器,并在之后的 2 周内再添加 6 个。保守地说,我估计到今年年底我需要扩展到 120 台服务器。

我现在的动机是将消费者流量与基础设施流量分开。消费者流量的优先级高于基础设施流量,我不能允许基础设施方面的踩踏事件关闭我面向消费者的服务器。拥有一个永远在线的网站是重中之重。但是,如果其中一个消费者应用服务器出现故障,我想将该流量路由到为基础架构流量指定的服务器。

复杂的是,所有流量都使用相同的主机名寻址,并且几乎 100% 是 https。在我的例子中,区分基础设施和消费者流量的唯一方法是通过 URL(我继承的糟糕的架构),所以我需要一个第 7 层负载均衡器来进行路由。然而,为了让它工作,我需要一个基于硬件的 SSL 终止器或一个如上所述的 SSL 服务器群。因为我的用户群正在迅速扩展,我担心如果我沿着硬件路径走下去,它会很快变得非常昂贵,特别是因为我需要 4 个所有东西来实现高可用性(2 个设施中的 2 个相同设置)。同时,上图似乎非常灵活,并且更具水平可扩展性。

以前有人建过这个吗?是否有预先构建的配置?我应该考虑什么以及我应该使用什么软件(我听说有人使用带有 mod-ssl、nginx 和 stunnel 的 apache)?另外,购买昂贵的负载平衡器与构建 SSL 服务器群什么时候有意义?

http://1wt.eu/articles/2006_lb/index_05.html

ssl nginx load-balancing mod-ssl

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

当所有后端服务器都在 Apache 后面运行 HAProxy 时,获取 502 而不是 503

我正在测试运行 HAProxy 作为 Apache 2.2 后面的专用负载均衡器,替换我们当前使用 Apache 负载均衡器的配置。在我们当前的 Apache 设置中,如果所有后端(源)服务器都关闭,Apache 将提供 503 服务不可用消息。使用 HAProxy,我得到 502 错误的网关响应。

我在 Apache 中使用了一个简单的反向代理重写规则

RewriteRule ^/(.*) http://127.0.0.1:8000/$1 [last,proxy]
Run Code Online (Sandbox Code Playgroud)

在 HAProxy 我有以下(在默认 tcp 模式下运行)

defaults
    log             global
    option          tcp-smart-accept
    timeout connect 7s
    timeout client  60s
    timeout queue   120s
    timeout server  60s

listen my_server 127.0.0.1:8000
    balance leastconn
    server backend1 127.0.0.1:8001 check observe layer4 maxconn 2
    server backend1 127.0.0.1:8001 check observe layer4 maxconn 2
Run Code Online (Sandbox Code Playgroud)

在后端服务器关闭时测试直接连接到负载均衡器:

[root@dev ~]# wget http://127.0.0.1:8000/ test.html
--2012-05-28 11:45:28--  http://127.0.0.1:8000/
Connecting to 127.0.0.1:8000... connected.
HTTP …
Run Code Online (Sandbox Code Playgroud)

reverse-proxy load-balancing haproxy apache-2.2

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

为网站分配多个公共 ip

如果我们有 3 个具有相同域名且每个具有不同公共 IP 的网络服务器。此设置是否会带来最小的负载平衡。

当我们查找 google.com 时,它被解析为 10+ ip。这个设置可以带来类似的设置。

domain-name-system linux web-server load-balancing

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

具有多个 IP 的出站电子邮件负载平衡

我想通过多个 IP 对出站电子邮件进行负载均衡,是否有任何内置工具或一些简单的方法可以使用 postfix、sendmail 或 exim 来实现?例如,如果我为电子邮件服务器分配了三个 IP,并且电子邮件是通过所有 ip 一一发送的。

email postfix load-balancing zimbra

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

EC2 负载均衡器 - “负载均衡器”和“应用程序”生成的 Cookie 粘性之间的区别

弹性负载均衡器的粘性可以设置为三个选项之一

  1. 禁用粘性
  2. 启用负载均衡器生成的 Cookie 粘性
  3. 启用应用程序生成的 Cookie 粘性

2) 和 3) 之间有什么区别?

load-balancing amazon-ec2 amazon-web-services

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

DNS 级负载均衡

在这个世界上有可能实现 DNS 级别的负载均衡吗?例如,我有一个服务器 A(111.222.333.444)和服务器 B(555.666.777.888),并且有一些第三方 DNS 托管(如 CloudFlare)可以决定服务器 A 是否关闭(或没有响应)然后转移所有到服务器 B 的流量。这不是真正的负载平衡,而是流量分流,我不知道。但有可能吗?

我知道 DNS 传播需要时间,但像 CloudFlare 这样的服务几乎不需要几分钟就可以转移到其他服务器。

有任何想法吗?谢谢。

load-balancing dns-hosting traffic-management

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

为什么第 7 层负载均衡器配置不需要任何客户端配置更改?

例如,对于haproxy(第7层)负载均衡,只需要配置VIP(即集群IP)后面的“真实服务器”或“后端”即可。例如:

listen smtp 192.168.3.10:25
        mode tcp
        balance roundrobin
        server smtp1 192.168.3.1:25 check
        server smtp1 192.168.3.2:25 check
Run Code Online (Sandbox Code Playgroud)

但是,对于lvs(第 4 层),我需要:

  1. 将本lvs机设置为路由器,实现“NAT路由”
  2. lvs机和后端都配置有与后端的一些ARP MODS的VIP

如果没有更复杂的配置,第 7 层负载平衡如何设法做到这一点?我在这里误解或遗漏了一些基本的东西吗?

linux cluster load-balancing haproxy lvs

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

Nginx 服务器上的 Amazon ELB 和多域

我有一个运行 Nginx 的 EC2 实例,其中包含多个域。我的配置是这样开始的:

server {
    listen 80;
    #disable_symlinks off;
    server_name _; #allow few domains

    #Adding 'www.' to url in case it doesen't
    if ($host !~* ^www\.) {
       rewrite ^(.*)$ http://www.$host$1 permanent;
    }

  location / {
  if (!-e $request_filename){
    rewrite ^(.*)$ /index.php;
  }
    index index.html index.php;
}
Run Code Online (Sandbox Code Playgroud)

我不确定在 ELB(亚马逊)上使用哪个 ping 路径,因为如果我尝试 HTTP,实例总是失败。如果我尝试 TCP(端口 80),则 ping 成功。我必须使用 HTTP,因为我想使用粘性。

有什么建议吗?谢谢,丹尼

nginx load-balancing amazon-ec2 amazon-web-services amazon-elb

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