标签: load-balancing

基于 URL 而不是 IP 地址的 Nginx 负载均衡?

我们担心基于 IP 的服务负载平衡(例如,移动客户端从 3G 切换到 Wifi)。有没有办法基于 URL 的一部分而不是 IP 哈希来做到这一点?

nginx load-balancing

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

varnish config include 语句是否支持通配符?

在谷歌搜索并简要浏览 varnish 文档后,我找不到对此的参考。例如,我可以在清漆 vcl 中执行以下操作吗?

include sites-enabled/*.vcl
Run Code Online (Sandbox Code Playgroud)

linux configuration varnish reverse-proxy load-balancing

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

如何为我的网站创建“失败鲸鱼”?

我有一个网站,我们可以在几台机器上进行负载平衡。负载平衡器(Brocade ServerIron ADX)位于本地网络上。我知道它能够配置一个“备份”IP 地址以用作“真实”IP 地址,但它需要在本地网络上。当我的整个环境可能由于 FW、LB 或多服务器故障而脱机时,如何向我的用户提供“失败鲸鱼”和状态更新消息?由于 DNS 无法提供加权 A-Record 备份(如 SRV 记录),我有哪些选择?

理想情况下,解决方案应该能够在我的网站变得无法访问时自动介入,并通知我的用户我们的响应团队正在解决问题。

domain-name-system disaster-recovery high-availability load-balancing

3
推荐指数
2
解决办法
689
查看次数

如何让 Nginx 转发原始主机名

我有一个 nginx 服务器充当我的 apache 服务器的负载平衡器。我正在使用子域,我的代码依赖于 HTTP_HOST 值来执行正确的任务。

当我请求说:http://get.example.com一旦它被转发,Apache 上的 HTTP_HOST 就变成了example.com.

我的问题是如何使它与原始请求保持一致?

这是我的 nginx 配置:

upstream example.com {
  server 192.168.2.1:8909 weight=2;
  server 192.168.2.2:8909 weight=1;
  server 192.168.2.3:8909 weight=1;
}

server {
  listen 80;
  location / {
    proxy_pass  http://example.com;
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试proxy_pass为每个子域添加多个,一个,但似乎不起作用。

nginx load-balancing apache-2.2

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

AWS 负载均衡器和 IPv6

请允许我提前道歉。我知道这个问题已经被问过,并以一种或另一种方式在网上多次回答。问题是,所有的解决方案和答案有时都是矛盾的,最终只会让我感到困惑。我们的开发组要求我为他们在 AWS 中的实例配置 v6 访问权限。我通常不处理 DNS 的事情,所以我有点困惑。这是目标。IPv4 和 IPv6 访问 AWS 云中的服务器,这显然现在可以通过负载均衡器完成。这就是事情开始变得棘手的地方。这些域托管在 Dreamhost 上。谁能解释一下如何配置?您会认为这就像在 Dreamhost 中创建一个 A 和 AAAA 记录一样简单,指向 AWS 负载均衡器的 IPv4 和 IPv6 地址。请帮忙!谢谢!

作为旁注,我已经阅读了很多关于 Route 53 的内容,但看起来除非需要它才能使其正常工作,否则我们需要避免它。据我了解,它只是 AWS 的 DNS。我想避免将服务从 Dreamhost 转移出去。里面还有很多其他的东西。

ipv6 load-balancing amazon-web-services

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

RabbitMQ HAProxy 配置

我有一个向 RabbitMQ 发送消息的 API。

我在 HAProxy 后面有一个高可用性 RabbitMQ 集群。

当我对 API 进行负载测试时,我开始看到很多这样的内容:

Recovering from a network failure... Exception in the reader loop: AMQ::Protocol::EmptyResponseError: Empty response received from the server.

在我的独角兽日志中。

如果我通过 haproxy 直接连接到 RabbitMQ,我不会。我哪里出错了,我的 haproxy 配置如下所示:

global
  log 127.0.0.1   local0
  log 127.0.0.1   local1 notice
  #log loghost    local0 info
  maxconn 4096
  #debug
  #quiet
  user haproxy
  group haproxy

defaults
  log     global
  mode    http
  retries 3
  timeout client 50s
  timeout connect 10s
  timeout server 50s
  option dontlognull
  option forwardfor
  option httplog
  option redispatch …
Run Code Online (Sandbox Code Playgroud)

load-testing load-balancing haproxy rabbitmq

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

基于客户端 IP 的负载均衡器后面的清漆 ACL

在以下设置中:

Client -> LB -> Varnish
Run Code Online (Sandbox Code Playgroud)

我想配置 Varnish acls 以根据客户端的 IP 执行某些操作。LB 在一个名为“ClientIP”的变量中发送客户端的 IP,Varnish 可以通过它读取req.httpd.ClientIP.我试过这个:

acl admin_net {
  "10.10.1.160"/27;
}

sub vcl_deliever {
  if (req.http.ClientIP ~ admin_net) {
  // do something ... 
  }  
}
Run Code Online (Sandbox Code Playgroud)

但是 VCL 编译失败并显示“预期的 CSTR 得到了‘admin_net’”(C 字符串?)。我可以通过 解决这个问题req.http.ClientIP ~ "10.10.1.*"),但我必须注释掉 ACL 行。

有没有另一种方法可以让这个与 ACL 一起工作?我也看了看client.ip,这是一个只读变量。在上面的设置中,它包含 LB 的 IP 而不是客户端的 IP。

varnish load-balancing access-control-list

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

Nginx 负载均衡器挂在 SSL 上

我试图让 nginx 在我的 Web 服务器之间进行负载平衡,同时在负载平衡器级别终止 SSL。我正在使用的 nginx.conf 文件基于做这件事的所有指南,但我无法让它工作。使用标准 HTTP 时,负载均衡器工作正常。但是,当尝试通过 HTTPS 访问负载均衡器时,浏览器会挂起,最终给出 ERR_CONNECTION_REFUSED。

我在尝试 HTTPS 时没有看到日志中的任何错误,甚至在访问日志中也没有看到任何错误,所以我不知道可能是什么问题。我尝试了很多不同的配置选项,包括尝试不同的 SSL 证书、PEM 编码、捆绑证书等等,但都没有效果。

这是 nginx.conf 的主要部分:

upstream backend {
    #web01
    server 10.01.01.102;
    #web02
    server 10.02.02.77;
}

#setup proxy
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

# standard http server
server {
    listen 80;
    listen 4444;

    server_name *.example.com;

    location / {
        proxy_pass http://backend;
    }
}

#server for https requests
server {
    listen 443 ssl;

    server_name *.example.com;

    #ssl on;
    ssl_certificate /path/to/example.com.crt;
    ssl_certificate_key /path/to/example.com.key;

    location …
Run Code Online (Sandbox Code Playgroud)

ssl nginx load-balancing

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

如果您正在使用 SSL,是否需要在外部负载均衡器上配置 SSL?

使用 Elastic Load Balancer,很容易在外部负载均衡器上设置 SSL,并将请求作为 http 提供给应用程序。

运行单个服务器时,还可以在 Web 服务器 (Tomcat) 或应用程序 (Spring) 上配置 SSL。

使用负载均衡器运行时,是否需要将 SSL 拉到负载均衡器的级别?转发仍然加密的流量是否会丢失 SSL 连接的状态元素?

ssl load-balancing

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

HAProxy + keepalived + 多个后端农场/虚拟 IP 地址

我们有几个后端养殖场(HTTP,FTP等),基本上是一个农场的每一位客户,我将重建我们的负载平衡的基础设施,移动PiranhaHAProxy
由于我们使用了几个不同的后端服务器群,Piranha 配置目前看起来像这样(示例显示了服务器场webserv01,第二个服务器场webserv02使用相同的配置,但不同的虚拟 IP):

virtual webserv01 {
active = 1
address = 10.11.11.1 eth2:30
vip_nmask = 255.255.255.0
port = 80
send = "GET / HTTP/1.0\r\n\r\n"
expect = "HTTP"
use_regex = 0
load_monitor = none
scheduler = rr
protocol = tcp
timeout = 6
reentry = 15
quiesce_server = 0
server webserv01v {
address = 192.168.101.64
active = 1
port = 80
weight = 1
}
server webserv02v {
address = …
Run Code Online (Sandbox Code Playgroud)

load-balancing haproxy keepalived backend

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