Articles of 负载平衡

运行Auto Scaling和分布式Memcache的多个AWS EC2

我计划在Amazon EC2上的一系列Linux Web服务器上使用分布式Memcache。 这些EC2目前运行自动缩放,因此会随着负载而增加和减less。 我已经使用这个post来指导初始设置。 最佳做法与memcache / php – 多个memcache节点 还有一个链接是在回复中提到的。 http://techgurulive.com/2009/07/22/a-brief-to-memcached-hash-types/ 我有点不确定Web服务器本地AWS IP如何在Memcache客户端代码中的节点列表中更新,以及服务器增加和减less的时间。 我目前在客户端上使用PHP PECL – Memcache。 有没有人知道用AWS环境来pipe理这个最好的实现? 在此先感谢您的任何build议。 戴夫

负载平衡:Nginx,Varnish和HTTP会话

我必须build立一个负载均衡系统。 目前我有两台机器运行Nginx 0.8.52,PHP-FPM(在unix套接字上)和一个基于PHP Symfony 1.4.11的应用程序。 在第三台机器上,我必须select一个平衡器来安装。 我已经使用Varnish进行静态文件caching,但是我不知道Varnish负载平衡是否可以处理Symfony PHP会话。 另一种select是使用ip_hash进行Nginx负载平衡。 哪一个是最好的? 提前致谢

负载平衡器w /基于名称的虚拟主机

使用Amazon的Elastic Load Balancer将请求转发到使用基于名称的虚拟主机的多个EC2实例是否存在任何问题? 换句话说,HTTP头是否正确转发,以便Apache可以确定要提供哪些文件?

PHP在几台服务器上进行会话共享

还有其他的线索,但我还有一个问题。 我们即将在工作中扩展网站以拥有多台服务器。 我们需要共享服务器之间的会话。 我们一直在研究不同的解决scheme,一个在memcached中 ,另一个在Memcached中用sessionhandler。 这可能会奏效。 这个想法是在每台机器上运行memcached,并让所有的web服务器访问所有其他服务器的memcached服务器,然后我们已经在机器之间共享会话,耶。 (我们没有资源来设置粘滞会话,这是一个稍后的项目,我们需要这个运行,现在我们需要这个运行,而且我们会用一个初始的DNS进行负载平衡) 但是,然后…如果我想要一个服务器,维护,或服务器崩溃,或任何原因。 我不希望用户放松会议,必须从头开始…这就是为什么我们需要某种Memcached不支持的复制。 然后我发现http://repcached.lab.klab.org/ – 它有memcached多主复制,这是伟大的,是我想要的。 但它是否适用于> 2台机器? 说3,5,10? 为了将来扩展。 我也研究过Redis的http://redis.io/ – 这看起来也很棒,但是对于php-session-handler支持来说更加“不稳定”,并且没有多主复制。 问题是我喜欢使用memcached,但是我希望能够在不丢失一半会话的情况下closures两个盒子中的一个。 有什么build议么?

石墨/碳簇返回不完整的数据

试图build立一个石墨/碳集群。 我有一个弹性负载平衡器,可以引导群集中两个节点之间的stream量,每个节点都有一个Web应用程序,中继和caching。 在本例中,我向Metric1发送了1000个计数。 这是一张图表: 问题 如上图所示,每个服务器大约有一半的实际度量值。 当通过networking应用程序查询时,它只返回实际计数的一半。 根据这个奇妙的post ,这是预期的行为,因为networking应用程序返回它看到的第一个结果。 这意味着(并logging在案)只有完整的计数应该存储在节点上(在我的例子中,一个或两个节点应该有1000)。 所以我的问题似乎是不正确的计数分解和复制。 在我上面的例子中,当一个新的计数来自networking,它可以被redirect到NodeA或NodeB。 我曾经假devise数可以通过任何继电器进入集群。 为了testing这个假设,我从集群中删除了负载均衡器,并将所有传入计数指向NodeA的中继。 这工作:完整的计数出现在一个节点,然后复制到第二个,完整的计数从Web应用程序正确返回。 我的问题 carbon-relay似乎充当应用级负载均衡器。 这很好,但是我担心当入站stream量变得太大时,使用单个carbon-relay作为负载平衡器将成为瓶颈和单点故障。 我更愿意使用实际的负载均衡器来平均分配群集中继中的传入stream量。 然而, carbon-relay似乎并不好,因此上述问题。 为什么中继集群在上述场景中将两个caching之间的Metric1拆分? (当负载均衡器将input分配到不同的继电器?) 我可以在我的Graphite / Carbon集群前使用弹性负载平衡器吗? 我是否为此configuration了群集? 如果我不能,我是否应该将自己的初级carbon-relay放在自己的盒子上作为负载平衡器?

通过AWS Load Balancer自动调节应用程序访问权限

我正在为我计划从专用主机服务迁移到AWS的Web应用程序configurationtestingAWS架构。 我现在拥有如下: 一个MySql RDS,我的应用程序数据在哪里。 两个EC2实例。 此实例具有应用程序源代码(用PHP编写),并已configuration为连接到RDS。 一个负载平衡器。 根据处理器的使用情况,我已经将其设置为在2到10个实例之间进行自动缩放,但是一旦应用程序启用,我很可能会调整这些策略。 新的EC2实例将通过自定义图像与代码和RDS连接参数一起启动,我正在圣保罗地区工作。 除了一件事以外,一切正常。 如果我通过ELB DNSlogging访问网站,那么我可以在那里看到该网站,但是我无法login。当我放置用户凭证时,没有任何反应。 (该网站基本上是一个pipe理面板,所以我必须login才能看到他们的内容),但是如果我通过一个单独的实例IP或DNSlogging访问,我可以login并正常使用应用程序。 用户数据(用户和密码)存储在RDS中。 如果有人经历过类似的事情,我真的很感激你的帮助。 先谢谢你!

Azure公共端点SSL终止

在Azure中,是否有任何方法直接在公共VIP上设置HTTPS端点,而不是将每个虚拟机join负载平衡集,以便将此端点与SSL证书相关联,并将解密后的stream量转发给虚拟机? 我知道AWS允许您直接在弹性负载平衡器上安装证书并configurationSSL终止,但是在Azure中我没有find任何指导。

我可以使用HAProxy负载平衡telnet连接吗?

我们使用HAProxy作为负载均衡器来处理常规的HTTP请求。 我在“HAProxyconfiguration指南”中看不到有关telnet连接的提示:“ HAProxyconfiguration指南” 。 我希望重用HAProxy(或为长寿命的连接启动单独的实例)来平衡TCP客户端,这可以用HAProxy完成吗?

GCP HTTP / S负载平衡器中的会话持久性不能按预期方式工作

我已经和其他负载平衡器一起工作了很多年,所以我期望GCP负载平衡器在使用会话持久性设置时以与其他人相同的方式工作。 不幸的是, 为GCP LB中的后端启用会话持久性似乎并不是将某个客户端的所有请求发送到单个后端服务器(既不使用Cookie或IP会话持久性选项) 这是一个已知的错误/行为或我自己可以解决的事情吗? 我做了这个快速testing: 我创build了一个新的HTTP LB,并为其分配了一个新的外部IP。 我已经将后端服务指向具有2个实例的实例组。 由于我的后端服务器运行的是Apache和mod_php,我创build了一个简单的PHP脚本(称为get_up.php)来显示服务器的IP地址(请参阅下面的代码) 最后,我在一个循环中运行了一个快速的curl脚本,指向$ LBIP / get_ip.php来看看会发生什么。 如果我这样做,比方说,在Rackspace中,我总是获得与结果相同的IP,但在GCP中,我发现我可以随机访问我的两个后端服务器中的任何一个。 这是我的PHPtesting脚本: <?php $realIP = file_get_contents("http://ipecho.net/plain"); echo "My Ip is " . $realIP; echo "\n"; ?> 这是我的testing运行: ➜ ~ while true; do curl -b cookie.txt -c cookie.txt $IP/get_ip.php; sleep 1 ; done My Ip is 35.193.16.20 My Ip is 35.193.16.20 My […]

服务器群集(Django,Apache,Nginx,Postgres)

我有一个与Django,Apache,Nginx和Postgres部署的项目。 该项目要求客户可以查看实时数据。 项目要点是:1.现场设备login后向服务器发送数据(设备也类似网站用户)。 2.有postgres导入上传数据的后台导入过程。 3.系统的networking用户使用这些数据,并可以向设备发送命令,设备在login时读取这些命令。 4.还有对数据运行的背景分析例程。 上述所有设置和系统都部署在一台亚马逊EC2云计算机上。 该项目目前支持600多个设备和400个用户。 但随着设备数量的不断增加,服务器的性能正在下降。 我们想扩展这个项目,以便它可以支持越来越多的设备。 我最初的想法是,我们将创build一个像当前的服务器,并将其中的设备分为服务器。 但是,我们需要一个中央的用户和设备pipe理点,虽然Django的pipe理。 有任何想法吗? 创build可伸缩体系结构的最佳方式是什么? 如果可能的话,如何创build一个Postgres集群并在Django中使用它?