标签: load-balancing

F5 负载均衡器在超时时重新发送请求

首先让我说我不是系统管理员,我是程序员。

最近,我们的系统管理员安装了 F5 负载均衡器。从那时起,我注意到任何时候请求超时并最终抛出 500,负载均衡器都会向我们的另一台服务器发送相同的请求。即使脚本实际上仍在运行,IIS 也会发送超时响应。如果脚本运行超过 5 分钟,即使 POST 请求也会重复。这对我来说似乎是一个潜在的问题,尤其是对于涉及客户计费的电子商务网站。

这只是我们一些运行时间较长的脚本的问题(但这是一个严重的问题)。我被告知这是预期的行为,我们必须更改我们的代码以符合要求。所以我的问题是:

  • 这是预期的行为吗?
  • 除了用户不必刷新之外,负载均衡器在超时后复制请求的优势是什么?
  • 使用这种架构,如果运行一个使服务器陷入困境或占用资源的脚本,它将最终在两台服务器上运行。这真的是最优的吗?

iis load-balancing f5-big-ip

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

HAProxy 没有公平地平衡服务器负载

HAProxy 似乎并没有保持与服务器的连接平衡。

请记住这一点:

  • 使用 HAProxy v1.3.26
  • 5 个均衡的服务器规格
  • 算法是循环的,但没有对每个服务器应用权重
  • 在 haproxy 中设置的全局最大连接数为 80,000

如图所示,服务器 C 和 D 的连接似乎比其他服务器多。由于这种额外的负载,它们会继续下降并自动重新启动。

状态 配置

我尝试阅读 HAproxy 官方文档并进行了一些谷歌搜索,但没有发现任何有用的信息。希望这里有人可以提供帮助。

几个问题:

  1. 为什么当配置说使用 roundrobin、服务器规格相同并且没有应用权重时会出现这种情况?

  2. 什么决定了“会话”列中的“最大”子列(表示 1970、1444 等的那个)。服务器 C、D、E 在 3K 范围内,其他 2 个在 2K 以下。为什么会有差异?

  3. 如何让这一切保持平衡?

  4. 有人可以解释每一列吗?我很惊讶 HAproxy 的官方文档并没有真正解释它。

scaling load-balancing haproxy

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

如何扩展支持长轮询的 Web 服务器

我计划添加更多 Web 应用程序服务器以支持不断增加的客户端,部署 HAproxy 和 Keepalived 以实现负载平衡和高可用性。

我的服务器使用具有以下特点:

  1. 作业不是 CPU 密集型的。消息是少于 100 个字符的 JSON 文本。
  2. 用户将通过客户端设备 Y 向服务器发送消息。通常每天 4-5 条消息
  3. 客户端设备 X 一直在等待来自服务器的消息。如果消息在服务器上可用,客户端设备 X 必须能够在 2 秒内得到它。否则,此消息已过时。

为此原因,

  1. 客户端设备 X 正在使用长轮询 HTTP 连接以进行响应。每个连接将持续 5 秒并重新连接。
  2. 客户端设备 X 和客户端设备 Y 连接到同一服务器,因此 X 和 Y 可以轻松发送消息

如果有超过 60,000 个客户端设备 X 连接到服务器,我的负载平衡器或路由器将耗尽 TCP 端口。例如,扩展 20,000 个用户的最佳方法是什么?

我的服务器在 Ubuntu 服务器上运行,使用 tomcat 和 Java Servlet。

linux ubuntu tomcat high-availability load-balancing

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

Amazon Web Services 上的负载平衡 Wordpress:管理更改

我对 Amazon Web Services 比较陌生,我正在尝试了解 Elastic Load Balancing 如何在我的 wordpress 设置上下文中工作。此外,我想就拟议的基础设施提供一些建议。

我最初提议的基础设施如下:

  • 1x EC2 m1.small - Ubuntu 12.04.3 LTS 64 位(带有 1 个 EBS 卷)
  • 1x EC2 t1.micro - Ubuntu 12.04.3 LTD 64 位(有或没有 EBS 卷?)
  • 1 个微型 RDS 实例 - MySQL 5.6.13

EC2 我当前的 EC2 (t1.micro) 正在运行 LAMP 堆栈并配置为运行 wordpress。

我想用 m1.small 实例来负载平衡,运行 t1.micro 实例的克隆。

我目前的未知数如下:

  • 负载平衡设置将如何管理跨实例在 wordpress CMS 上所做的更改?每次在 wordpress 中进行更改时,我是否都必须不断更新 AMI?
  • 我的网站是一个电子商务网站。这在负载平衡设置中是否有任何影响?即,订单是否有可能存在于一个实例而不是另一个实例上?

这可能是一个非常愚蠢的问题,但我认为有些问题不会相关,因为基础设施正在引用一个数据库。

最后,有没有更好的方法来设置负载平衡的基础设施?即我是否应该考虑使用 Amazon S3 来存储我的所有文件并使用 Cloudfront 作为 CDN 以确保高效运行并解决任何 EBS 文件复制问题。

非常感谢任何帮助。

劳埃德

load-balancing wordpress amazon-web-services

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

使用 Keepalived 设置主动/主动 HAProxy 的任何问题

抱歉,如果之前有人问过这个问题,但我似乎找不到太多关于它的信息。

我们将使用 HAProxy 来平衡我们的 MariaDB Galera 集群。我在这方面看到的所有文章/教程都使用 Keepalived(或类似的东西)进行主动/被动 HAProxy 设置。

有什么好的理由为什么你不应该有一个主动/主动设置?

每个 HAProxy 节点都可以有一个固定的 IP,并且都有一个浮动的 IP。在正常情况下,请求在两个 HAProxy 节点之间共享,如果一个节点宕机,另一个将使用它的浮动 IP 并处理两个 IP 下的请求。当另一个恢复时,它会再次获取其浮动 IP 和负载份额。

我很感激你对此的意见。

卢克

high-availability load-balancing haproxy keepalived

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

nginx - 负载均衡器 - 上游节点离线/关闭时相当大的延迟

CentOS 6.5上运行 nginx 1.0.15。我有三台上游服务器并且一切正常,但是当我模拟中断并关闭其中一台上游服务器时,我注意到响应时间有相当大的延迟(额外的 5-7 秒)。当我将宕机的服务器重新联机时,延迟就消失了。另外,我注意到的另一个奇怪的事情是,如果我只是在模拟中断服务器上停止 httpd 服务,响应时间是正常的,只有在服务器完全关闭时才会出现延迟。

这是我的conf:

upstream prod_example_com {

    server app-a-1:51000;

    server app-a-2:51000;

    server app-a-3:51000;

}


server {

    # link:  http://wiki.nginx.org/MailCoreModule#server_name
    server_name example.com www.example.com *.example.com;

    #-----
    # Upstream logic
    #-----


    set $upstream_type prod_example_com;


    #-----

    include include.d/common.conf;

    # Configure logging
    access_log  /var/log/nginx/example/access/access.log access;
    error_log   /var/log/nginx/example/error.log error;

    location / {

        # link: http://wiki.nginx.org/HttpProxyModule#proxy_pass
        proxy_pass  http://$upstream_type$request_uri;

        # link: http://wiki.nginx.org/HttpProxyModule#proxy_set_header
        proxy_set_header    Host    $host;
        proxy_set_header    X-Real-IP   $remote_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {

        # link: http://wiki.nginx.org/HttpProxyModule#proxy_pass
        proxy_pass …
Run Code Online (Sandbox Code Playgroud)

nginx centos load-balancing

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

Nginx 作为负载均衡器。连接上游时频繁上游超时(110:连接超时)

我正在尝试在 centos 7 虚拟机上使用 nginx 作为负载平衡器来替换老化的 Coyote Point 硬件设备。但是,在我们的一个 web 应用程序中,我们在日志中看到频繁且持续的上游超时错误,并且客户端在使用系统时报告会话问题。

这是我们 nginx.conf 中的相关部分

user  nginx;
worker_processes  4;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

upstream farm {
   ip_hash;

   server www1.domain.com:8080;
   server www2.domain.com:8080 down;
   server www3.domain.com:8080;
   server www4.domain.com:8080;
}

server {
        listen 192.168.1.87:80;
        server_name host.domain.com;
        return         301 https://$server_name$request_uri;
}

server {
    listen 192.168.1.87:443 ssl;
    server_name host.domain.com;

    ## Compression
    gzip              on;
    gzip_buffers      16 8k;
    gzip_comp_level   4;
    gzip_http_version 1.0;
    gzip_min_length   1280;
    gzip_types        text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript …
Run Code Online (Sandbox Code Playgroud)

nginx reverse-proxy load-balancing

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

Nginx 中多个备份服务器如何工作?

对于该backup指令,Nginx 文档的说明相当简单:

将服务器标记为备份服务器。当主服务器不可用时,它将传递请求。

如果您有多个备份并且主服务器出现故障,是否将其中一个备份指定为新的主服务器怎么办?或者 Nginx 会在它们之间进行轮询吗?

语境

我有一个主服务器和多个备份服务器,但所有连接应始终连接到同一个主服务器或备份服务器。有点像ip_hash负载平衡模式,只不过它应该为所有连接和客户端使用相同的服务器。

nginx high-availability load-balancing

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

SSL 证书和 Azure 经典负载均衡器

我在 Azure 上的负载均衡器后面有 2 个 VM。我使用分配给负载均衡器的域,通过 Let's Encrypt 在其中一台虚拟机上创建了一个新的 SSL 证书。当我通过 IP 直接连接到该 VM 时,我看到已加载证书,但我现在无法将负载均衡器流量路由到 VM,该网站无法加载。

在我在 nginx 中添加证书和规则以将 80 重定向到 HTTPS 之前,一切正常。我在负载均衡器中添加了一条新规则,将数据从 443 路由到后台池 443,并为 443 添加了一个新的健康探测,但这并没有帮助。

我读到可以使用 Azure 应用程序网关直接在负载均衡器上加载证书,但在这种情况下,我需要重新创建我的 VM 以将它们放在同一个虚拟网络中,我想避免这种情况。

是否可以使用经典负载均衡器路由 HTTPS 流量。请注意,我可以将每个 VM 设置为使用相同的证书,以便在每个 VM 中获取 HTTPS 流量。

ssl https load-balancing ssl-certificate azure

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

如何在不停机的情况下迁移到 Google 托管证书?

我正在将 example.com 从外部(非 Google)托管提供商迁移到 GCP。

设置负载均衡器时,我注意到我必须将 example.com 指向负载均衡器才能验证 Google 托管证书。

我应该将 example.com 的 A 记录更改为新负载均衡器的(静态)IP - 然后它将验证。

问题是,我已经有大量流向 example.com 的流量,在 example.com 开始指向负载均衡器之后、但在验证证书之前发生的请求将生成 SSL 错误,并使用户非常不满意。

有人解决这个问题了吗?我知道有一些方法可以避免轮换证书时出现停机,但是一定有某种方法可以在不停机的情况下迁移大型站点吗?

load-balancing ssl-certificate google-compute-engine google-cloud-platform

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