HAproxy

Combine HAProxy stats?

余生颓废 提交于 2019-12-07 05:31:58
问题 I have two instances of HAProxy. Both instances have stats enabled and are working fine. I am trying to combine the stats from both instances into one so that I can use a single HAProxy to view the front/backends stats. I've tried to have the stats listener on the same port for both haproxy instances but this isn't working. I've tried using the sockets interface but this only reports on one of the interfaces as well. Any ideas? My one haproxy config file looks like this: global daemon maxconn

为什么你得学些 TCP 的知识?

☆樱花仙子☆ 提交于 2019-12-06 23:56:50
这不是指要明白 TCP 的所有东西,也不是说要通读 《TCP/IP 详解》。不过懂一点 TCP 知识是很有必要的。理由如下: 当我还在 Recurse Center 的时候,我用 Python 写过 TCP 协议栈(还写过一篇文章:如果你用 Python 写 TCP 协议栈会遇到什么?)。这是一次有趣的学习经历,但是也仅此而已。 一年以后,工作中有人在 Slack 上提到:“嘿,我在向 NSQ 发布消息时,每次要耗费 40 毫秒”。我已经断断续续思考了一个星期,但是没有任何结果。 一点背景知识:NSQ 是一个消息队列,你通过本地的一个 HTTP 请求向其发布消息。发送本地的一个 HTTP 请求确实不应该花费 40 毫秒,有时候会更差。NSQ 守护进程的负载不高,也没有使用过多的内存,也看不到 GC 停顿。这究竟是为什么呢?神呐,救救我吧! 突然我记起我一周以前看过的一篇叫做“性能研究(In search of performance)”的文章——我们如何为每个 POST 请求节省 200ms。在这篇文章中,他们说到为什么每个 POST 请求会花费额外的 200 毫秒。就是这个原因。这是该文章中的关键段落: 延迟确认(ACK) 与 TCP_NODELAY Ruby 的 Net::HTTP 会将 POST 请求切分为两个 TCP 包,一个消息头,一个消息体。相反,curl

How to rewrite domain.com to www.domain.com with HAProxy?

断了今生、忘了曾经 提交于 2019-12-06 22:39:49
问题 We have 1 loadbalancer with 3 members behind it: main balancer: www.website.com members: web1.website.com, web2.website.com and web3.website.com Currently we are using nginx on the loadbalancer, but we want to replace it with HAProxy. Nginx rewrites the domain without www (domain.com) to www.domain.com with the following line: server { server_name domain.com; listen 1.2.3.4:80; rewrite ^(.*) http://www.domain.com$1 permanent; } How can I manage this with HAproxy? My haproxy config: frontend

高可用的mysql galera集群部署

霸气de小男生 提交于 2019-12-06 22:28:19
一:集群机器介绍 四台机器: 1.balance节点安装haproxy和keepalived 机器名: balance01 172.18.48.1 balance02 172.18.48.2 2.galera节点安装mysql数据库和galera 机器名: galera01 172.18.48.3 galera02 172.18.48.4 操作系统:ubuntu14.04 server64 注:每台机器/etc/hosts上要写上涉及到的所有对应的ip和主机名 二:balance节点安装 balance节点安装配置haproxy和keepalived 1./etc/sysctl.conf添加 vim /etc/sysctl.conf net.ipv4.ip_nonlocal_bind=1 2.加载sysctl.conf sysctl -p 3.安装haproxy和keepalived apt-get install -y keepalived haproxy 4.创建/var/lib/haproxy mkdir /var/lib/haproxy 5.把/var/lib/haproxy权限改为root所有 chown root:root /var/lib/haproxy/ 6.vim /etc/keepalived/keepalived.conf balance01添加如下:

使用haproxy+squid构建正向代理服务

两盒软妹~` 提交于 2019-12-06 21:15:39
##使用haproxy+squid构建正向代理服务 #####正向代理的业务场景 假设在局域网内存在6台主机,其中只有一台主机可以上外网,那么其余5台主机就需要通过那一台可以上外网的主机上网,即所谓代理(正向代理)。代理服务器启动后,不能上网的主机只需在IE中配置代理服务器即可。IE中的代理服务器设置为 “Internet选项->连接->局域网设置->代理服务器” 中设置代理服务器的IP和代理服务器的端口。 #####问题来了,如何构建一个代理服务呢? 如上述假设,在那一台可以出外网的主机上安装代理软件squid,并进行适当配置即可。应该说明的是,代理软件很多,如果那一台能出外网的主机是Windows系统的话,可以选择ccproxy。这里主要是指在Linux环境下的代理,其他代理软件还有nginx,不过貌似大家都用它做反向代理,做正向代理这里还是用squid吧。 #####squid的安装,配置,运行 安装 sudo apt-get install squid 配置, 打开/etc/squid3/squid.conf文件,注意修改如下的配置项 http_port 3128 #代理服务器的端口 ##http_access deny !Safe_ports #注释掉此项 ##http_access deny manager #注释掉此项 ##http_access deny to

docker 学习操作记录 5-1

爱⌒轻易说出口 提交于 2019-12-06 16:25:48
记录5-1 1 [BEGIN] 2019/12/5 10:21:32 2 Connecting to 192.168.114.130:22... 3 Connection established. 4 To escape to local shell, press Ctrl+Alt+]. 5 6 Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.15.0-72-generic x86_64) 7 8 * Documentation: https://help.ubuntu.com 9 * Management: https://landscape.canonical.com 10 * Support: https://ubuntu.com/advantage 11 12 * Overheard at KubeCon: "microk8s.status just blew my mind". 13 14 https://microk8s.io/docs/commands#microk8s.status 15 16 3 个可升级软件包。 17 0 个安全更新。 18 19 New release '18.04.3 LTS' available. 20 Run 'do-release-upgrade' to upgrade to it. 21 22

Varnish to be used for https

南楼画角 提交于 2019-12-06 14:40:53
Here's the situation. I have clients over a secured network (https) that talk to multiple backends. Now, I wanted to establish a reverse proxy for majorly load balancing (based on header data or cookies) and a little caching. So, I thought varnish could be of use. But, varnish does not support ssl-connection. As I've read at many places, quoting, "Varnish does not support SSL termination natively" . But, I want every connection, ie. client-varnish and varnish-backend to be over https. I cannot have plaintext data anywhere throughout network (there are restrictions) so nothing else can be used

HAproxy: different 503 errorfile for OPTIONS and POST methods

拜拜、爱过 提交于 2019-12-06 14:15:48
问题 We have a Web application using ajax calls to a backend running on different domain (-> CORS needed). The backend consists of a HAproxy 1.4.22 and then multiple Wildflys (running on OpenShift PaaS). In case no Wildfly is available (e.g. during "Maintenance"), HAproxy serves 503 to every request or the configured errorfile. So far so good... This is a problem for the Web application to properly visualise "Maintenance Mode" according to a rejected backend request (with 503), because the browser

搭建mysql负载均衡及高可用环境

自作多情 提交于 2019-12-06 14:09:18
目标:使用两台主机实现 Mysql 的负载均衡及冗余,并做到双主互备; 环境:rhel5.8,mysql-5.0.77,keepalived-1.2.7,haproxy-1.4.20; 说明: keepalived 实现通过 vrrp协议,通过使一个虚拟IP地址(或称浮动IP)在主备设备间的切换来达到主机冗余; 而客户机通过访问这个虚拟IP 来获取服务; haproxy 是一款负载均衡软件,用于将请求按策略转发给不同主机,达到负载均衡的效果; 可以实现网络层或应用层上的判断分配; mysql 开启二进制日志,做到数据库之间的双向复制,保持数据一致性; #提醒一下,实际生产环境没人会这样搭建的,仅通过这个实验来理解这些概念,希望阅者能有所获; server1_ip=192.168.5.11 server2_ip=192.168.5.12 server_vip=192.168.5.111 ================================================ #此处关闭了防火墙,开启则另配置相应规则 service iptables stop chkconfig iptables off ls /opt/soft/ #提取准备软件到此处 haproxy-1.4.20.tar.gz keepalived-1.2.7.tar.gz mkdir /opt

[转]RabbitMQ集群原理与搭建

蹲街弑〆低调 提交于 2019-12-06 12:47:26
摘要:实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理 一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试环境上使用其单实例部署就可以了,但是出于MQ中间件本身的可靠性、并发性、吞吐量和消息堆积能力等问题的考虑,在生产环境上一般都会考虑使用RabbitMQ的集群方案。 对于RabbitMQ这么成熟的消息队列产品来说,搭建它并不难并且也有不少童鞋写过如何搭建RabbitMQ消息队列集群的博文,但可能仍然有童鞋并不了解其背后的原理,这会导致其遇到性能问题时无法对集群进行进一步的调优。本篇主要介绍RabbitMQ集群方案的原理,如何搭建具备负载均衡能力的中小规模RabbitMQ集群,并最后给出生产环境构建一个能够具备高可用、高可靠和高吞吐量的中小规模RabbitMQ集群设计方案。 一、RabbitMQ集群方案的原理 RabbitMQ这款消息队列中间件产品本身是基于Erlang编写,Erlang语言天生具备分布式特性(通过同步Erlang集群各节点的magic cookie来实现)。因此,RabbitMQ天然支持Clustering。这使得RabbitMQ本身不需要像ActiveMQ、Kafka那样通过ZooKeeper分别来实现HA方案和保存集群的元数据。集群是保证可靠性的一种方式