我在这里先问这个问题。最后我build议在这里问一下。 我正在开发一个服务器端软件,它使用ASIO进行客户端和服务器之间的TCP套接字通信。 所有这些都是用C ++来完成的,因为这个软件是用来实现极快的低延迟数据传输的。我需要能够在服务器的不同实例(进程)之间分配传入的客户端连接。 于是我学到了一个新的术语 – 负载平衡器 。 现在,因为我使用C ++和ASIO,我开始寻找可用的开源库。 我find了 我所理解的是,这是一个代理服务器,调解客户端和服务器之间的连接。 那就是它保持了两者之间的桥梁。 我有以下问题: 所有的代理服务器都是这样工作吗? 是否有可能build立一个代理服务器(或负载平衡器),只有在主动连接期间,不将服务器实例redirect到服务器实例,而不用作开放套接字stream量的介质? 再次,我最终想要的是,我的负载均衡器从客户端获得连接请求,然后“告诉”我的服务器获取该连接信息(例如IP地址),然后继续直接连接服务器和客户端。
我们正在开始考虑在许多虚拟服务器(CloudServers @ Rackspace)上托pipe我们的网站。 正如我想通过考虑,一个想到的是我们如何部署从我们的Subversion回购代码到这些服务器? 可能性:A)进入每一个SSH并运行'svn update'B)为我做的(A)的脚本c)还有其他的东西? 有什么其他的方法将代码部署到n台服务器。 对于2台服务器,我认为(A)或(B)是非常简单的,但那些有1000台服务器的网站呢? 他们如何pipe理代码部署? 更新:这是我在这个主题find一个很好的链接。 HighScalability.com:代码部署工具
我使用haproxy 1.4.13版本的Ubuntu。 其负载均衡两个子域名: app1.domain.com app2.domain.com 现在我想能够使用ACL根据url请求发送到右后端例如: http://app1.domain.com/path/games/index.php sould be send to backend1 http://app1.domain.com/path/photos/index.php should be send to backend2 http://app2.domain.com/path/mail/index.php sould be send to backend3 http://app2.domain.com/path/wazap/index.php should be send to backend4 我确实使用了下面的acl代码 frontend http-farm bind 0.0.0.0:80 acl app1web hdr_beg(host) -i app1 # for http://app1.domain.com acl app2web hdr_beg(host) -i app2 # for http://app2.domain.com acl msg-url-1 url_reg ^\/path/games/.* […]
我看到HAProxy的一些非常奇怪的行为。 我有下面的设置,以允许example.com/wiki去一个服务器和example.com/去另一个。 麻烦的是,/ wiki只有一半的时间,/ webserver只有一半的时间。 仔细检查后,似乎是在两个后端之间切换; 可能对它们进行负载平衡,而不是根据ACL规则转到特定的后端。 另一个奇怪的是,即使规则明确指出只有服务器的临时主机应该到达后端,services-staging.example.com/greenoven和staging.example.com都会去金橘。 我的HAProxyconfiguration有问题吗? 我是否正确使用acls或后端? global log 127.0.0.1 local1 debug maxconn 200000 chroot /var/lib/haproxy user haproxy group haproxy daemon #debug #quiet defaults log global mode http option httplog option dontlognull retries 3 option redispatch maxconn 200000 contimeout 5000 clitimeout 50000 srvtimeout 50000 stats uri /monitor stats auth admin:GS01 stats refresh […]
在工作中,我被要求增加对将多个密钥映射到单个(甚至多个)IP到本质上被动的HTTP嗅探器的支持。 它支持用户上传的密钥进行SSL解密。 目前,它支持一个IP到一个密钥的映射,或一个IP到多个密钥的映射。 问题出在通知方面。 目前我们发送SNMP陷阱和/或电子邮件,如果密钥不再起作用。 使用多对多的映射,我将无法知道失败是否是由于一个映射键已经改变的模数(因此键已经改变),或者它只是一个额外的键被添加,或者系统pipe理员对解密不感兴趣。 主要的问题在于这里,因为它将被实现的方式,除非完全重写被允许,还将打破一对一IP /密钥映射的当前通知。 我认为这是错误的,这是我的观点。 有人可以帮我支持与老板的这个论点吗? 或者,如果我错了,请告诉我我的推理错误在哪里。 这个function是必需的,因为显然有一个用例,一个webapp中的多个节点使用不同的密钥,即使它们都映射到一个VIP。 请求这个function的人坚持说他们已经在客户端环境中看到了这个function。 我想确认这是一个错误的观察,但我没有tcpdumps这样做。 我认为,对于一个单独的IP,SSL协商将始终发送相同的证书,因此将使用相同的密钥,因为没有HTTPS已经完成,它只知道到IP的连接,不知道什么主机:在这个阶段,头文件存在于webapp / server上,以确定应用程序将会响应什么。 因此,在我看来,不能有这样的用例。 是否有一个负载均衡器可以让您将两个密钥放到一个VIP中? 而且,即使可以做到这一点,基于SSL协商的方式,也无法控制terminal用户甚至收到正确的证书。 这基本上是一个破碎的设置。 我想不出一个有效的用例,它不会导致客户端的随机SSL不匹配错误。 所以,我疯了,觉得这不应该被支持? 如果是这样,我很想知道何时将多个密钥映射到单个IP是一个有效的用例。 如果没有,请为此提供进一步的build设性论据 – 因为我上述论点没有成功。 到目前为止的答复是“系统pipe理员不胜任的问题不是我们的问题,我们应该支持” 编辑:我打破了标题
我将成为第一个承认我不是服务器pipe理员。 :)我的专长在于软件开发。 话虽如此,我有一个云服务器实例作为一个Web服务器和一个数据库。 我的networking服务器只configuration了2GB的内存和80GB的存储空间,正在接近其操作限制。 升级至4GB RAM / 160GB存储的成本大约是双倍。 获得另一个2GB / 80 GB服务器实例的成本是相同的。 那么,哪个更好? 获取另一台服务器并对其进行负载平衡,或只是在当前服务器上投入更多的内存/存储空间? 有没有技术上的理由来支持一个和另一个?
由于search引擎抓取工具正在closures网站(拥有数百万个网页),因此我刚刚为AWS设置了一个负载均衡器。 部分网站允许您login,所以我select了: 启用应用程序生成的Cookie粘性 一切正常。 我现在想知道这将如何影响我的SEO和抓取。 当我select粘性负载平衡,这是否意味着一个爬虫将卡在一台服务器,并因此在负载平衡器中击败点? 任何build议将不胜感激。
弹性负载平衡器的粘性可以设置为三个选项之一 禁用粘滞性 启用负载均衡器生成的Cookie粘性 启用应用程序生成的Cookie粘性 2)和3)有什么区别?
我的自定义域使用GitHub页面,但我想了解它是如何工作的。 对于这个例子,我没有使用我的自定义域。 我的GitHub页面库不包含CNAME文件。 例如,给定一个没有CNAME文件的GitHub页面库: example.github.io example.github.io DNS请求parsing为185.31.16.133 运行example.github.io的ping命令也会返回相同的IP地址: 185.31.16.133 当我在浏览器中打开网站http://example.github.io时,浏览器会显示实际网站的内容。 当我input一个IP地址185.31.16.133而不是使用像Postman这样的工具发出一个HTTP GET请求时,我所看到的只是一个GitHub Pages 404错误。 为什么我无法直接通过IP地址访问我的GitHub用户页面? 我认为浏览器在发出HTTP请求之前,将URL的主机名部分replace为DNS查找的IP地址响应。
我目前正在尝试为一堆下载镜像设置一个负载平衡器。 在阅读这个主题的时候,我看到Nginx非常适合作为负载平衡器,太棒了! 但是当看到不同的configuration时,我有点困惑。 人们可以决定redirect或代理到后端服务器。 redirect非常明确,您告诉客户端去其他地方,请求传递和处理,负载平衡器是不在图片。 但是,如果您select使用代理,是不是基本上削弱了运行多个下载镜像的整个想法? 鉴于nginx会将请求转发到后端服务器,下载文件并传递给客户端? 所以想象一下我认为它是如何工作的(数据包stream): redirect :客户端=>负载平衡器=>后端=>客户端 代理 :客户端=>负载平衡器=>后端=>负载平衡器=>客户端 或者,代理会做一些魔术,并告诉客户端实际连接到后端下载他的文件? 如果代理确实有点失败的目的,有多个下载镜像,以获得更多的吞吐量,redirect唯一的select? 编辑:或者我混淆了与重写代理的运作? 代理实际上是否像使用redirect一样传递请求,而仍然使用相同的URL?