我有以下设置:
(internet) ---> [ pfSense Box ] /-> [ Apache / PHP server ]
[running HAproxy] --+--> [ Apache / PHP server ]
+--> [ Apache / PHP server ]
\-> [ Apache / PHP server ]
Run Code Online (Sandbox Code Playgroud)
对于 HTTP 请求,这很好用,请求被分发到我的 Apache 服务器就好了。对于 SSL 请求,我让 HAproxy 使用 TCP 负载平衡分发请求,但是它可以工作,因为 HAproxy 没有充当代理,它没有添加X-Forwarded-ForHTTP 标头,并且 Apache/PHP 服务器不知道客户端的真实IP地址。
所以,我stunnel在HAproxy前面加了,读到stunnel可以加X-Forwarded-ForHTTP头。但是,我可以安装到 pfSense 中的包没有添加这个标头......而且,这显然会扼杀我使用 KeepAlive requests 的能力,我真的很想保留它。但是扼杀了这个想法的最大问题是 stunnel 将 HTTPS 请求转换为普通的 HTTP 请求,所以 PHP 不知道 SSL 已启用并试图重定向到 SSL …
现在我们每个站点/网络服务只有一个后端服务器。我很想听听人们对各种负载均衡器应用程序(在 Linux 上运行的应用程序)的体验。
你会推荐什么?
我想暂时阻止外部世界的端口 80,但希望负载均衡器通过防火墙(通过安全组),这样它就不会将实例视为不健康。我怎样才能做到这一点?
更新: 我还想知道如何只允许自己通过端口 80 访问弹性负载均衡器(但阻止其他人访问)。我知道负载均衡器没有我可以设置的特定安全组并告诉它只接受我的 IP 地址,但是还有其他方法可以做到吗?
我正在设置一个使用虚拟机(可能是亚马逊,但不是一成不变的)托管的应用程序,这将需要 HTTP 负载平衡和负载平衡大量(如果可能,50k 左右)的持久 TCP 连接。数据量并不高,但更新频繁。
现在我正在评估负载均衡器,并且对 HAProxy 的架构有点困惑。如果我使用 HAProxy 来平衡 TCP 连接,是否所有产生的流量都必须流经负载平衡器?如果是这样,另一种解决方案(例如 LVS 甚至 nginx_tcp_proxy_module)是否更合适?
我们正在尝试在 Amazon EC2 上运行一个相当简单的设置 - 位于 Amazon Elastic Load Balancer (ELB) 后面的几个 HTTP 服务器。
我们的域是在 Route53 中管理的,我们设置了一个指向 ELB 的 CNAME 记录。
我们遇到了一些问题,其中一些(但不是全部)位置间歇性地无法连接到负载均衡器;看来这可能是ELB的域名解析。
亚马逊支持告诉我们负载均衡器的底层弹性 IP 一直在变化,问题是一些 ISP 的 DNS 服务器不遵守 TTL。我们对这种解释并不满意,因为我们使用 Amazon 自己的 DNS 服务器从 EC2 实例以及澳大利亚本地 ISP 和 Google 的 DNS 服务器复制了该问题 ( 8.8.8.8)。
亚马逊还证实,在我们注意到某些位置出现停机期间,通过 ELB 的流量显着下降——因此问题不在于我们的端点。
有趣的是,域似乎在无法连接的服务器上解析为正确的 IP - 但尝试建立 TCP 连接失败。
附加到 ELB 的所有实例一直处于健康状态。他们都是
有谁知道我们如何更深入地诊断这个问题?有没有其他人在使用 Elastic Load Balancer 时遇到过这个问题?
谢谢,
我正在使用Elastic Load Balancing对我的Auto Scaling Group进行负载平衡,为此我有一个私有AMI来保存我的应用程序服务器 (Tomcat) 和我作为战争部署到它的 Web 应用程序......现在一切正常......什么如果我需要在我的AMI上更改我的 tomcat 配置。这不需要启动我的 AMI --> 登录 + 更改 Tomcat 配置 --> 创建新的 AMI --> 删除旧的 AMI 我不认为创建新的 AMI 是一个解决方案,因为它需要更新我的 Auto Scale组以添加我的新 AMI
有没有一种方法可以在不创建新 AMI 的情况下更新现有 AMI 中的数据?我只想拥有相同的 AMI ID
load-balancing amazon-ami amazon-ec2 amazon-web-services autoscaling
我们有一个负载平衡的 Exchange 2013 SP1 群集,通过 HTTP 运行 MAPI。
我们自己网络内的客户端连接工作正常,而通过 Direct Access 连接的客户端无法连接。客户端上的 Outlook 日志显示完全没有错误。
直接访问服务器运行的是 2012 R2,客户端都是 Windows 8.1。一切都已修补。
过去几周我一直在疯狂地搜索,我得到的唯一有趣的结果是关于 TMG 2010 (UAG) 由于源 IP 更改(交换负载平衡器)而过滤掉请求。有一篇知识库文章 (982604)描述了这一点,还有一篇关于高级支持问题的大量博客文章,但遗憾的是该脚本在我们的服务器上不起作用,因为它不是 TMG 而是 Windows Server 2012 R2..
我在这里不知所措。我会在一周内提出这个问题,然后我会向 Microsoft 提出首要支持案例。
我在带有 2 个全局转发规则(HTTP 和 HTTPS)的 Google Compute Engine 上设置了 HTTP/HTTPS 负载平衡。每个规则指向一个使用 HTTP 协议的后端服务。
我希望所有请求http://*都转到https://*.
当负载平衡器通过 HTTP 与后端服务通信时,我认为我无法在后端服务上使用 nginx 将301.
我在谷歌计算上尝试了十几个小的调整,他们最终都以谷歌计算返回一个502.
我敢肯定其他人之前已经设置了这个。任何正确方向的提示或指示都非常感谢。
我在 Ubuntu 16.04 上安装了来自 ppa 的最新 NGINX。
nginx 版本:nginx/1.12.1
根据我的理解,它应该支持流和 UDP 负载均衡。
但我收到此错误消息:
nginx: [emerg] "stream" directive is not allowed here in /etc/nginx/conf.d/load-balancer.conf:3
Run Code Online (Sandbox Code Playgroud)
这是我的配置 /etc/nginx/conf.d/load-balancer.conf
stream {
upstream backend {
least_conn;
server 172.31.9.51 fail_timeout=10s;
server 172.31.20.140 fail_timeout=10s;
}
server {
listen 500 udp;
listen 4500 udp;
proxy_pass backend;
proxy_timeout 1s;
proxy_responses 1;
error_log logs/dns.log;
}
}
Run Code Online (Sandbox Code Playgroud) 我在 HAProxy 设置了一堆侦听其他各种端口的应用程序服务器方面取得了一些初步成功。
我现在有另一个网络服务器在一个端口上侦听,我想对我的配置进行哪些更改以按主机名传输流量。
以下是当前设置,假设:
Run Code Online (Sandbox Code Playgroud)global log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 4096 debug #quiet #user haproxy #group haproxy defaults log global mode http option httplog option dontlognull retries 3 redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 listen appservers 0.0.0.0:80 mode http balance roundrobin option httpclose option forwardfor #option httpchk HEAD /check.txt HTTP/1.0 server inst1 0.0.0.0:8081 cookie server01 check inter 2000 fall 3 server inst2 0.0.0.0:8082 …
load-balancing ×10
amazon-ec2 ×3
haproxy ×3
amazon-ami ×1
autoscaling ×1
cloud ×1
exchange ×1
hostname ×1
lvs ×1
nginx ×1
pfsense ×1
proxy ×1
scaling ×1
ssl ×1
ubuntu ×1
ubuntu-16.04 ×1
udp ×1
web-services ×1