Articles of 负载均衡

主动/被动反向代理与Nginx

我有两个Websocket服务器,与Zookeeper & Curator一起工作,如果一台服务器出现故障,那么第二个后端活起来。 我按照以下方式configuration它: upstream backend { server 172.31.9.1:8080 max_fails=1 fail_timeout=5s; server 172.31.9.0:8080 max_fails=1 fail_timeout=5s; } server { listen 443; # host name to respond to server_name xxxxxx.compute.amazonaws.com; ssl on; ssl_certificate /etc/ssl/certs/wildcard.dev.xxxx.net.crt; ssl_certificate_key /etc/ssl/certs/wildcard.dev.xxxx.net.key; location / { # switch off logging access_log off; proxy_pass http://backend; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # […]

在Google kubernetes负载均衡服务上显示端口80和443

我遵循Google 的留言板教程 ,并从中创build了我自己的configuration文件。 所以农场一切工作正常。 现在,我想从我的networking服务器端口公开端口80和443。 我知道如何在控制器configuration文件中执行此操作(请参阅下文),但不能在服务configuration文件中执行。 任何线索怎么做呢? 这是我的控制器configuration文件: { "id": "webservers-controller", "kind": "ReplicationController", "apiVersion": "v1beta1", "desiredState": { "replicas": 3, "replicaSelector": {"name": "webservers"}, "podTemplate": { "desiredState": { "manifest": { "version": "v1beta1", "id": "webservers-controller", "containers": [{ "name": "webservers", "image":"gcr.io/myapp/webservers:latest", "ports": [ {"name": "http-server", "containerPort": 80}, {"name": "https-server", "containerPort": 443} ] }] } }, "labels": { "name": "webservers" […]

Ipvsadm监视负载平衡器上的连接

我正在努力在第一个时期使用两个后端Web服务器在负载平衡器上设置Haproxy。 我面临的问题是监视每个Web服务器的连接数。 我已经试过用ipvsadm这个工具做这个,但是在阅读之后,我真的不确定如何使用这个工具来监视,而不是用它作为“转发 – 负载平衡工具”。 我试图设置它,但它是完全错误的,因为我只想监视连接到我的后端服务器与此工具。 有没有人有build议如何做到这一点? 我也希望有关如何制作图表的任何提示。 要添加服务器: ipvsadm -A -t 10.0.33.15:80 -s rr 添加Web服务器: ipvsadm -a -t 10.0.33.15:80 -r 10.0.33.18 –m ipvsadm -a -t 10.0.33.15:80 -r 10.0.33.19 -m

使用外部网站作为健康检查是否合理?

我有一个4台代理服务器分布在几个数据中心,为广域网上的大量用户提供服务。 这些负载均衡使用位于每个站点的F5 GTM。 我的目标是为我的负载平衡器写一个健康检查,如果代理服务器closures,或者Internet的本地pathclosures,代理服务器就会closures。 在我看来,对我来说最完整的方法是通过代理使我的负载均衡器探测外部URL。 使用我自己的Web服务器将不会是一个有效的检查,因为连接将不需要离开数据中心,以通过检查。 我感到不公平,甚至是不道德的,让我的负载均衡器每天每隔一段时间向第三方URL请求,以检查我的代理的健康状况。 我的问题是这样的:例如,Google会不会一直在等他们的网站遭到这样的要求呢? 有没有更好的select,或任何网站致力于互联网信标?

Google Cloud:运行状况检查不会从HTTP负载平衡器中移除失败的实例

我有一个实例组,在HTTP负载平衡器后面有两个实例。 一个实例运行正常(返回http 200),另一个崩溃(HTTP请求超时)。 我不知道我在做什么错,但根据文档,失败的实例应自动从负载平衡器中删除。 以下是相关文档: https : //cloud.google.com/compute/docs/load-balancing/health-checks及相关段落: 为了健康检查被认为是成功的,后端必须返回一个有效的代码为200的HTTP响应,并在timeoutSec期间内正常closures连接。 如果某个实例未通过健康状况检查,则将其从组或池中删除,而不会发送任何通知。 如果它稍后通过健康检查,则会返回到组或池,而不会再有任何通知。 这是我目前在我的谷歌云控制台页面上看到的HTTP负载平衡器的后端。 当我访问我的网站( http://stage2.phantomjscloud.com )Rougly一半的时间,我得到 错误:服务器错误服务器遇到临时错误,无法完成您的请求。 请在30秒后重试。 HTTP负载均衡器(和运行状况检查)可以清楚地检测到发生故障的实例,但stream量仍然在服务于它。 我该如何解决这个问题?

Azure负载平衡使用资源pipe理器的虚拟机

使用Azure Classic,我可以在同一个云服务中创build两个虚拟机,我将为这两个虚拟机创build一个公共IP,并自动负载平衡两台虚拟机之间的stream量。 使用新的Azure资源pipe理器,出于显而易见的原因,我没有select将VMjoin到云服务。 但是,我仍然需要为这两个虚拟机获取一个公共IP,并且保持stream量负载均衡。 我看到有Azure负载平衡器function。 这基本上是旧的云服务负载平衡的替代? 如果是这样,是否需要花费任何东西来运行?

谷歌云上的负载均衡node.js应用的最佳实践

我正在寻找关于在Google云计算中部署Node.js应用程序的一些反馈。 目前,我们正在使用Google的HTTP负载平衡器,并将stream量直接导入到我们的Node.js池中。 我的问题具体是,别人如何做这个? 你是否让来自GCE的HTTP负载平衡器的stream量直接击中了你的Node.js应用,或者你是否在HAProxy或NGINX等私有networking中粘贴了另一个逆向代理以将stream量传递给Node.js? 它似乎有点多余,我有另一个反向代理,但我很好奇,如果有任何安全考虑等我忽略暴露节点的GCE HTTP LB. 谢谢

马拉松集装箱与Haproxy负载平衡,领事随机返回503个请求

目前的架构是这样组织的: 192.168.1.10,192.168.1.11,192.168.1.12 – 与马拉松和领事服务器mesos大师 192.168.1.21,192.168.1.22,192.168.1.23 – 三名中间人与领事代理人 每台机器有以下configuration: 它自己的IP地址作为DNS服务器 HAPROXY with consul-template用于自动生成haproxy.cfg 用于注册正在运行的docker集装箱的主机IP地址的通知,以避免在从不同的机器parsing时在DNS中具有172.1.0.1地址的服务 我目前遇到的问题是,当我启动docker容器与桥接模式的服务,该地址是由DNS解决,因为它应该是(如果你有luigi.service.consul它将完成没有问题) ,但是当我尝试CURL -L http://luigi.service.consul/ ,我有随机503 error codes ,有时地址parsing,有时不是。 任何想法如何调查? 我检查了/etc/resolv.conf并且/etc/resolv.conf地,我可以看到DNS地址更改为旧的DNS IP地址(8.8.8.8),我应该使用主机IP地址作为DNS IP,还是我需要使用领事领导地址? 我已经尝试debuggingtcpflow,当响应是503,就像等待一段时间,就像它是无法解决的服务。

使用clone和clusterip启动pacemaker虚拟ip负载平衡

我正在尝试为一组natted机器制作一个负载均衡的网关。 我有3个centos节点。 最初只有一个节点应该有内部网关IP,并且运行良好。 交通stream量。 然后,我尝试通过clusterip_hash / clone选项来平衡网关。 在底部有一个资源创build与个人电脑,我的小地点限制(不要移动IP到一台没有“互联网”的机器),最后是克隆命令。 一旦我克隆资源,我可以看到他们在两个主机上正确运行,并且每个都添加了iptables规则: Chain INPUT (policy DROP) target prot opt source destination CLUSTERIP all — anywhere gateway CLUSTERIP hashmode=sourceip-sourceport clustermac=81:48:85:71:7F:47 total_nodes=2 local_node=2 hash_init=0 问题是,只要arp条目从当前的任一网关机器的真实物理mac改变到iptables中显示的clustermac,所有的natted机器就会松动互联网连接。 我添加iptableslogging丢弃的数据包,但似乎没有丢弃。 同时,似乎没有任何事情可以通过。 (10.10.0.52是一个随机挑选的natted主机,试图ping谷歌,如果虚拟IP克隆被删除,并改变为单个浮动IP,然后stream量再次stream动) [root@three ~]# tcpdump -nni enp1s0 icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp1s0, link-type […]

AWS Cloudfront +负载均衡器,url从主域更改为负载均衡子域

我的设置如下: 用户在浏览器上inputexample.com 请求转到AWS CloudFront,它将HTTPredirect到HTTPS,并将请求转发到AWS Elastic LoadBalancer(elb.example.com) LoadBalancer将请求转发到运行PHP Laravel框架的EC2实例 EC2正常响应 用户可以在example.com上正确地查看页面,其他所有内容对他都是透明的 所有这一切都是我想要的,不过….. 如果用户导航到页面上的任何button,浏览器上的url将变成elb.example.com(它应该停留在example.com) 如果我去查看网页源代码,页面上任何button的所有链接都有elb.example.com的基本url(它应该是example.com) 原因是因为EC2看到来自负载平衡器的请求,所以它假定基本url是elb.example.com并相应地生成所有链接。 如何使EC2看到基地url为example.com?