我有一个问题configurationHAProxy TCP模式与http2。 我的主要目标是通过HTTPS提供静态维护页面。 这是我的HAProxyconfiguration: global log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy stats socket /run/haproxy/admin.sock mode 660 level admin stats timeout 30s user haproxy group haproxy daemon tune.ssl.default-dh-param 2048 ssl-default-bind-options no-sslv3 no-tls-tickets ssl-default-bind-ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA defaults log global option dontlognull timeout connect 5000 timeout client 50000 timeout server 50000 frontend http mode http bind […]
我有一个高可用性系统,如下图所示: DNS RR -> Balancer1 \ \ HAproxy1 —> Backend Servers HAproxy2 —> Backend Servers HAproxy3 —> Backend Servers / / DNS RR -> Balancer2 简而言之:两个带VIP的负载平衡器可以接收来自客户端的请求,然后在作为SSL卸载和后端平衡的3台HAproxy服务器之间进行分配。 我现在的问题是DNS RR。 它有它的好处,但我正在寻找一个更好的解决scheme,以在Balancer1和Balancer2之间分配客户端。 任何消化? PS:GeoDNS不是一个选项。
我有两个MariaDB服务器,db1和db2,以及一个HAProxy。 HAProxy应该在它们之间进行负载平衡,如果从站滞后过大,则取消一个。 该设置大部分来自这里: https://severalnines.com/resources/tutorials/mysql-load-balancing-haproxy-tutorial 有一些改进。 所以,一个代理检查从属延迟,定期检查应该从集群中取下节点(事实上,这是一个双节点多主复制)。 我有HAProxy版本1.5.8,从这里开始看: https://cbonte.github.io/haproxy-dconv/1.5/configuration.html 对于HAProxy从不切换回失败节点的可能性。 所以,如果节点A失败了,所有stream量都应该到达节点B,直到我手动设置节点A为healty(通过socat或者HAProxy的networking用户界面)。 有没有我缺less的选项,或者是HAProxy只是错误的工具呢? 作为一个方面说明,负载平衡并不是真的有必要。
我正在使用loadbalancing设置ELK堆栈。 Haproxy适用于ES和Kibana,但是我遇到了Logstash问题。 这是haproxyconfiguration: frontend logstash bind 0.0.0.0:5000 mode tcp option tcpka option tcplog log global acl epa hdr_beg(host) -i epa-log acl tgops hdr_beg(host) -i tgops-log use_backend epa_log if epa use_backend tgops_log if tgops backend epa_log mode tcp server elk01 elk01.example.org:5001 check server elk02 elk02.example.org:5001 check server elk03 elk03.example.org:5001 check backend tgops_log mode tcp server elk01 […]
有没有什么办法像nginx,mod_proxy,haproxy或类似的东西,让它代理请求并行的两个不同的Web服务器? 我有一个服务器,就像当前的活动,并且是一个“新”,我想确保“新”一个工作相同的当前“活跃”一个切换之前。 所以,代理应该发送所有的请求,然后忽略来自“新”的答复。
我试图用haproxy做一些redirect。 我有2个网站www.example.com和http://example.com 我想将www.example.comredirect到www2.example.com 但是http://example.com不应该被redirect,因为它正在被页面引用。 如何用haproxy做到这一点? 问候, ķ
我根据acl条件redirect到某个域,但是我希望用户根据请求的scheme/协议以http或https结束。 我设法做到了这两行显示下面,但我想将它们转换为只有1行: http-request redirect code 301 location http://www.example.com%[url] if acl_whatever !{ ssl_fc } http-request redirect code 301 location https://www.example.com%[url] if acl_whatever { ssl_fc } 理想情况下,我想redirect到%[scheme]://www.example.com%[url]但%[scheme]不存在。 有一个variables或函数可以返回http或https所以我不必重复规则两次? 也许通过某种方式设置一个包含该scheme的variables,或者使用%[ssl_fc]值为0或1?
我已将我的域名托pipe在共享IP托pipe平台中。 我在Google Compute Engine上configuration了HAProxy来传输stream量。 但是当我尝试访问HAProxy服务器IP时,我得到了我的共享主机平台默认页面(当我们尝试通过IP地址访问网站时,就像CPanel默认页面一样)。 这里是我在HAProxyconfiguration中添加的附加configuration: resolvers public-dns nameserver dns1 4.4.4.4:53 nameserver dns2 8.8.8.8:53 frontend http bind *:80 stats uri /haproxy?stats default_backend site-backend backend site-backend mode http balance roundrobin option httpclose option forwardfor reqadd Host:\ app.domain_name.com server mysite app.domain_name.com:80 resolvers public-dns check inter 1000 resolve-prefer ipv4 如何使用HAProxy获取正确的网站?
我试图在代理之后启动几个Logstash实例。 我正在使用nginx,但HAProxy也是一个选项。 worker_processes 4; events { worker_connections 1024; } http { upstream streams { server logstash_ip:5044; } server { listen 80; location / { rewrite ^/(.*) /$1 break; proxy_ignore_client_abort on; proxy_pass http://streams; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; } } } logstash_ip是一个别名,它是可以parsing的。 问题是,当我将一些日志直接推送到logstash时 – 一切正常。 当我通过Nginx推送日志时,它失败了: 使用端口浏览Nginx会导致502网关错误 Logstash日志 发布事件(重试)时发生错误:lumberjack协议错误
是否可以configurationHaProxy来平衡整个子网的stream量。 我试过192.168.50.0/24,但HaProxy得到错误。 这是为了云环境,所以如果我的服务器向外扩展,我不需要手动重新configurationHaProxy并重新启动服务。 我的configuration: listen Cluster_3300 bind *:3300 mode tcp timeout client 10800s timeout server 10800s balance leastconn option httpchk option allbackups default-server port 9200 inter 2s downinter 5s rise 3 fall 2 slowstart 60s maxconn 1424 maxqueue 10000 weight 100 server app1 192.168.51.11:3306 check server app2 192.168.51.13:3306 check server app3 192.168.51.12:3306 check 所以最后3行是硬编码的,是否可以包含所有的子网虚拟机?