HAproxy

How to configure HAProxy to send GET and POST HTTP requests to two different application servers

懵懂的女人 提交于 2019-12-01 15:09:00
I am using RESTful architecture. I have two application servers running. One should serve only GET request and other should serve only POST request. I want to configure HAProxy to loadbalance the requests depending upon the above condition. Please help me Here's a partial HAProxy configuration which can do this for you: frontend webserver bind :80 mode http acl is_post method POST use_backend post_app if is_post default_backend get_app backend post_app mode http option forwardfor balance source option httpclose option httpchk HEAD / HTTP/1.0 server post_app1 172.16.0.11:80 weight 1 check inter

How to configure HAProxy to send GET and POST HTTP requests to two different application servers

做~自己de王妃 提交于 2019-12-01 14:00:24
问题 I am using RESTful architecture. I have two application servers running. One should serve only GET request and other should serve only POST request. I want to configure HAProxy to loadbalance the requests depending upon the above condition. Please help me 回答1: Here's a partial HAProxy configuration which can do this for you: frontend webserver bind :80 mode http acl is_post method POST use_backend post_app if is_post default_backend get_app backend post_app mode http option forwardfor balance

haproxy & LVS & ng的比较

江枫思渺然 提交于 2019-12-01 10:02:28
现在网站发展的趋势对网络负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术:   一种是通过硬件来进行进行,常见的硬件有比较昂贵的NetScaler、F5、Radware和Array等商用的负载均衡器,它的优点就是有 专业的维护团队来对这些服务进行维护、缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用;另外一种就是类似于 LVS/HAProxy、Nginx的基于Linux的开源免费的负载均衡软件策略,这些都是通过软件级别来实现,所以费用非常低廉,所以我个也比较推荐 大家采用第二种方案来实施自己网站的负载均衡需求。   近期朋友刘鑫(紫雨荷雪)的项目成功上线了,PV达到了亿级/日的访问量,最前端用的是HAProxy+Keepalived双机作的负载均衡 器/反向代理,整个网站非常稳定;这让我更坚定了以前跟老男孩前辈聊的关于网站架构比较合理设计的架构方案:即Nginx /HAProxy+Keepalived作Web最前端的负载均衡器,后端的MySQL数据库架构采用一主多从,读写分离的方式,采用 LVS+Keepalived的方式。   在这里我也有一点要跟大家申明下:很多朋友担心软件级别的负载均衡在高并发流量冲击下的稳定情况,事实是我们通过成功上线的许多网站发现,它们 的稳定性也是非常好的,宕机的可能性微乎其微,所以我现在做的项目

postgres高可用学习篇三:haproxy+keepalived实现postgres负载均衡

妖精的绣舞 提交于 2019-12-01 07:44:36
环境: CentOS Linux release 7.6.1810 (Core) 内核版本:3.10.0-957.10.1.el7.x86_64 node1:192.168.216.130 node2:192.168.216.132 node3:192.168.216.134 VIP:192.168.216.138 基础环境准备 优化内核参数cat /etc/sysctl.conf net.netfilter.nf_conntrack_tcp_be_liberal=1 vm.swappiness=1 vm.min_free_kbytes=102400 vm.dirty_expire_centisecs=1000 vm.dirty_background_bytes=67108864 vm.dirty_bytes=536870912 vm.zone_reclaim_mode=0 kernel.numa_balancing=0 kernel.sched_migration_cost_ns=5000000 kernel.sched_autogroup_enabled=0 net.ipv4.ip_nonlocal_bind=1 net.ipv4.ip_forward=1 net.ipv4.ip_local_port_range=1024 65535 net.netfilter.nf

Linux面试题

蓝咒 提交于 2019-12-01 07:04:02
1、什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术 运维又包括很多种,有DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等等 2)游戏运维又有分工,分为开发运维、应用运维(业务运维)和系统运维 开发运维:是给应用运维开发运维工具和运维平台的 应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查 系统运维:是给应用运维提供业务上的基础设施,比如:系统、网络、监控、硬件等等 总结:开发运维和系统运维给应用运维提供了“工具”和“基础设施”上的支撑 开发运维、应用运维和系统运维他们的工作是环环相扣的 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的? 游戏运营要做的一个事情除了协调工作以外 还需要与各平台沟通,做好开服的时间、开服数、用户导量、活动等计划 3、现在给你三百台服务器,你怎么对他们进行管理? 管理3百台服务器的方式: 1)设定跳板机,使用统一账号登录,便于安全与登录的考量。 2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。 3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息记录

使用Haproxy搭建Web群集的方法

不问归期 提交于 2019-12-01 00:21:30
常见的 Web集群调度器 目前常见的 Web 集群调度器分为软件和硬件,软件通常使用开源的LVS、Haproxy、Nginx,硬件一般使用比较多的是 F5,也有很多人使用国内的一些产品,如梭子鱼、绿盟等 Haproxy应用分析 ■LVS在企业应用中抗负载能力很强,但存在不足 LVS不支持正则处理,不能实现动静分离 对于大型网站,LVS的实施配置复杂,维护成本相对较高 ■Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理的软件 特别适用于负载特别大的Web站点 运行在当前的硬件上可支持数以万计的并发连接连接请求 Haproxy 调度算法原理 Haproxy 支持多种调度算法,最常用的有三种: ●RR (Round Robin) RR算法是最简单最常用的一-种算法,即轮询调度 理解举例 有三个节点A、B、C,第一个用户访问会被指派到节点A,第二个用 户访问会被指派到节点B,第三个用户访问会被指派到节点 第四个用户访问继续指派到节点A,轮询分配访问请求实现负载均衡效果 ●LC (Least Connections) LC算法即最小连接数算法,根据后端的节点连接数大小动态分配前端请求 理解举例 有三个节点A、B、C,各节点的连接数分别为A:4、B:5、 C:6, 此时如果有第 一个用户连接请求,会被指派到A上,连接数变为A:5、B:5、 C:6

负载均衡的原理、分类、实现架构,以及使用场景

最后都变了- 提交于 2019-11-30 23:08:00
为什么需要负载均衡 负载均衡原理 负载均衡作用 负载均衡实现 负载均衡分类 负载均衡应用场景 为什么需要负载均衡 当系统面临大量用户访问,负载过高的时候,通常会使用增加服务器数量来进行横向扩展,使用集群和负载均衡提高整个系统的处理能力。 从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统。分布式和业务拆分解决了,从集中到分布的问题,但是每个部署的独立业务还存在单点的问题和访问统一入口问题,为解决单点故障,我们可以采取冗余的方式。将相同的应用部署到多台机器上。解决访问统一入口问题,我们可以在集群前面增加负载均衡设备,实现流量分发。 负载均衡的原理 系统的扩展可分为纵向(垂直)扩展和横向(水平)扩展。 纵向扩展,是从单机的角度通过增加硬件处理能力,比如CPU处理能力,内存容量,磁盘等方面,实现服务器处理能力的提升,不能满足大型分布式系统(网站),大流量,高并发,海量数据的问题。 因此需要采用横向扩展的方式,通过添加机器来满足大型网站服务的处理能力。比如:一台机器不能满足,则增加两台或者多台机器,共同承担访问压力。 应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理,并返回相应数据。 负载均衡设备:将用户访问的请求,根据负载均衡算法,分发到集群中的一台处理服务器。

Haproxy 简介及配置文件详解

强颜欢笑 提交于 2019-11-30 21:23:27
HAProxy简介 官网:http://www.haproxy.com HAProxy提供高可用性、负载均衡以及基于TCP和HTTP的应用代理,支持虚拟主机,它是免费、快速并且可靠的一种负载均衡解决方案。适合处理高负载站点的七层数据请求。类似的代理服务可以屏蔽内部真实服务器,防止内部服务器遭受攻击。 HAProxy特点和优点: 1.支持原声SSL,同时支持客户端和服务器的SSL. 2.支持IPv6和UNIX套字节(sockets) 3.支持HTTP Keep-Alive 4.支持HTTP/1.1压缩,节省宽带 5.支持优化健康检测机制(SSL、scripted TCP、check agent...) 6.支持7层负载均衡。 7.可靠性和稳定性非常好。 8.并发连接40000-50000个,单位时间处理最大请求20000个,最大数据处理10Gbps. 9.支持8种负载均衡算法,同时支持session保持。 10.支持虚拟主机。 11.支持连接拒绝、全透明代理。 12.拥有服务器状态监控页面。 13.支持ACL. HAProxy为了让同一客户端访问服务器可以保持会话。有三种解决方法:客户端IP、Cookie以及Session 1.HAProxy通过客户端IP进行Hash计算并保存,以此确保当相同IP访问代理服务器可以转发给固定的真实服务器。 2

基于Haproxy+Keepalived构建高可用负载均衡集群

泄露秘密 提交于 2019-11-30 21:22:42
主机名 IP地址 VIP 192.168.200.254 Haproxy-1 192.168.200.113 Haproxy-2 192.168.200.115 Nginx1 192.168.200.111 Nginx2 192.168.200.112 一、在Nginx1/2上编译安装nginx 1、第一台 [root@localhost ~]# yum -y install pcre-devel zlib-devel openssl-devel [root@localhost ~]# yum -y install gcc gcc-c++ make [root@localhost ~]# useradd -M -s /sbin/nologin nginx [root@localhost ~]# tar -xf nginx-1.15.9.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/nginx-1.15.9/ [root@localhost ~]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install [root@localhost ~]# ln -s /usr/local/nginx/sbin

基于Haproxy+Keepalived构建高可用负载均衡集群

好久不见. 提交于 2019-11-30 21:14:47
1、在Nginx1/2上编译安装nginx服务 1.1 首先安装Nginx1 [root@Nginx-1 ~] # yum -y install gcc gcc-c++ make pcre-devel zlib-devel [root@Nginx-1 ~] # useradd -M -s /sbin/nologin nginx [root@Nginx-1 ~] # tar xf nginx-1.6.2.tar.gz -C /usr/src [root@Nginx-1 ~] # cd /usr/src/nginx-1.6.2 [root@Nginx-1 nginx-1.6.2] # ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install [root@Nginx-1 nginx-1.6.2] # cd /usr/local/nginx/html/ [root@Nginx-1 html] # echo "server 192.168.200.103" > index.html [root@Nginx-1 html] # /usr/local/nginx/sbin/nginx [root@Nginx-1 html] # netstat -anpt |grep nginx