反向代理优缺点:

haproxy反向代理
高性能的HTTP,TCP反向代理

nginx:优点:
1.web服务器,比较广泛
2.工作7层location设置比较复杂基于HTTP(url,cookies,agent)的负载均衡
3.性能强大,网络依赖小
4.安装配置简单

缺点:
1.健康检查单一,不能基于url
2.负载均衡算法少
3.不能动态管理
4.没有集群upstream的状态页面

haproxy 优点:
1.专门做反向代理负载均衡
2.负载均衡算法丰富=8种
3.性能大于nginx
4.支持动态管理,通过和haproxy的sock进行通信,可以进行管理
5.有比较丰富的dashboard页面
6.比较强大的7层功能

缺点:
1.配置没有nginx简单

----------------------------------------------------------------------------------

1.haproxy源码安装,提前上传haproxy软件

cd /usr/local/src/
tar -zxvf haproxy-1.6.3.tar.gz
cd haproxy-1.6.3
make TARGET=linux26 ARCH=x86_64 PREFIX=/usr/local/haproxy-1.6.3
make install PREFIX=/usr/local/haproxy-1.6.3
ln -s /usr/local/haproxy-1.6.3/ /usr/local/haproxy

 2.配置启动脚本

cp /usr/local/src/haproxy-1.6.3/examples/haproxy.init /etc/init.d/haproxy
chmod +x /etc/init.d/haproxy
useradd -r haproxy -s /sbin/nologin

 3.配置环境变量

echo 'PATH="/usr/local/haproxy/sbin:$PATH"' >> /etc/profile
source /etc/profile

 4.haproxy配置文件

mkdir /etc/haproxy
mkdir /var/lib/haproxy
cd /etc/haproxy/
vim haproxy.cfg

 5.启动脚本更改

vim /etc/init.d/haproxy
35 BIN=/usr/sbin/$BASENAME # 替换BIN=/usr/local/haproxy/sbin/$BASENAME

 6.配置haproxy日志

[root@localhost haproxy-1.6.3]# vim /etc/rsyslog.conf     #17,18行注释取消,#最后增加一行
16 # Provides TCP syslog reception
17 $ModLoad imtcp
18 $InputTCPServerRun 514 local3.* /var/log/haproxy.log
[root@localhost haproxy-1.6.3]# /etc/init.d/rsyslog restart
[root@localhost haproxy-1.6.3]# /etc/init.d/rsyslog restart

 7.haprox.cfg配置文件

# 全局配置,日志,运行安装路径,
global
log 127.0.0.1 local3 info # 日志存储到127.0.0.1,端口是514, chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
#配置haproxy的sock文件,权限是600,等级是admin权限,超时2分钟
stats socket /var/lib/haproxy/haproxy.sock mode 660 level admin
stats timeout 2m
user haproxy
group haproxy
daemon # 默认配置
defaults
log global
mode http
#option httplog # 访问日志关闭
option dontlognull # 不记录空链接,如监控链接
timeout connect 5000
timeout client 50000
timeout server 50000
timeout check 10000
maxconn 3000 # 状态监控页面
listen haproxy_status
# 绑定地址,每5s自动刷新,隐藏版本,状态访问页面,认证账号,密码,条件满足进入管理界面
bind 172.16.1.14:8888
stats enable
stats refresh 100s
stats hide-version
stats uri /haproxy-status
stats realm "HAProxy/ static"
stats auth admin:admin123
stats admin if TRUE
# 允许的网段,允许,拒绝
#acl allow src 192.168.12.0/24
#tcp-request content accept if allow
#tcp-request content reject # 1.匹配到www.pinhui001.com域名,跳转到www_backend
frontend ph_web
bind 172.16.1.14:80
acl www hdr_end(host) pinhui001.com
#ACL规则定义的方式有hdr_reg(host)、hdr_dom(host)、hdr_beg(host)、url_sub、url_dir、path_beg、path_end等,-i表示不匹配大小写
acl www hdr_end(host) www.pinhui001.com
use_backend www_backend if www # 2.匹配到目录static,images及jpg,png结尾的跳转到
frontend ph_static
bind 172.16.1.14:1802
acl url_static path_beg -i /static /images /stylesheets
#acl url_static path_end -i .jpg .gif .png .css .js
acl static_reg url_reg /*.(css|jpg|js|jpeg|gif)$
use_backend static_backend if url_static # test
frontend test_web
bind 172.16.1.14:8899
acl test hdr_beg(host) -i test.pinhui001.cc
use_backend test_backend if test backend test_backend
mode http
balance roundrobin
option forwardfor header X-REAL-IP
option httpchk GET /iisstart.htm HTTP/1.1\r\nHost:172.16.1.25:80
server web-node1 172.16.1.25:80 check inter 2000 rise 3 fall 3 weight 1 # 1.
backend www_backend
# 随机,2秒检测,2次成功认为服务可用,3次失败认为服务不可用,权重为1
# option httpchk GET /index.html
balance roundrobin
option forwardfor header X-REAL-IP
server web-node1 172.16.1.25:18201 check inter 2000 rise 3 fall 3 weight 1
server web-node3 192.168.2.16:80 check inter 2000 rise 3 fall 3 weight 1 # 2.
backend static_backend
balance roundrobin
option forwardfor header X-REAL-IP
# cookie中插入srv字串防止登录信息丢失
cookie srv insert nocache
server static01 172.16.1.110:80 check inter 2000 rise 2 fall 3 weight 1
server static02 172.16.1.111:80 check inter 2000 rise 2 fall 3 weight 1

 8.动态管理haproxy

# 配置文件全局加入2行
vim /etc/haproxy/haproxy.cfg
global
stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
stats timeout 2m # 安装socker
yum list | grep socat
yum install -y socat # 查看支持的命令
[root@ha-node01 haproxy]# echo "help" | socat stdio /var/lib/haproxy/haproxy.sock
[root@ha-node01 haproxy]# echo "show info" | socat stdio /var/lib/haproxy/haproxy.sock # 查看状态信息 # 关闭某台主机,开启
cho "disable server test_backend/web-node1" | socat stdio /var/lib/haproxy/haproxy.sock
echo "enable server test_backend/web-node1" | socat stdio /var/lib/haproxy/haproxy.sock

 9.haproxy性能调优

[root@ha-node01 haproxy]# cat /proc/sys/net/ipv4/ip_local_port_range  # 端口范围调大
32768 61000
[root@ha-node01 haproxy]# cat /proc/sys/net/ipv4/tcp_tw_reuse # 设置1
1
[root@ha-node01 haproxy]# cat /proc/sys/net/ipv4/tcp_fin_timeout # 时间调短
30

参考文档:

http://cbonte.github.io/haproxy-dconv/configuration-1.6.html

HAproxy-1.6.3 安装部署的更多相关文章

  1. redis cluster安装部署(测试环境)

    redis 应用于web前端,做缓存和数据存取的速度是挺可观的,最近看了一些资料,手痒了,就弄了一个测试环境,两台方案,试用一下. ##Redis 集群部署## 一,方案调研: 参考博客: http: ...

  2. CentOS7.4下安装部署HAProxy高可用群集

    目录第一部分 实验环境第二部分 搭建配置web服务器第三部分 安装配置haproxy服务器第四部分 测试验证第五部分 haproxy配置相关详细解释 第一部分 实验环境1.一台harpoxy调度服务器 ...

  3. openstack pike 集群高可用 安装 部署 目录汇总

    # openstack pike 集群高可用 安装部署#安装环境 centos 7 史上最详细的openstack pike版 部署文档欢迎经验分享,欢迎笔记分享欢迎留言,或加QQ群663105353 ...

  4. Mariadb Galera Cluster 群集 安装部署

    #Mariadb Galera Cluster 群集 安装部署 openstack pike 部署  目录汇总 http://www.cnblogs.com/elvi/p/7613861.html # ...

  5. Haproxy+Keepalived高可用环境部署梳理(主主和主从模式)

    Nginx.LVS.HAProxy 是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,通常会结合Keepalive做健康检查,实现故障转移的高可用功能. 1)在四层(tcp)实现负载均衡的 ...

  6. kubernetes 1.9 安装部署

    参考地址:https://github.com/gjmzj/kubeasz 引言 提供快速部署高可用k8s集群的工具,基于二进制方式部署和利用ansible-playbook实现自动化,既提供一键安装 ...

  7. 基于Containerd安装部署高可用Kubernetes集群

    转载自:https://blog.weiyigeek.top/2021/7-30-623.html 简述 Kubernetes(后续简称k8s)是 Google(2014年6月) 开源的一个容器编排引 ...

  8. Oracle安装部署,版本升级,应用补丁快速参考

    一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...

  9. KVM安装部署

    KVM安装部署 公司开始部署KVM,KVM的全称是kernel base virtual machine,对KVM虚拟化技术研究了一段时间, KVM是基于硬件的完全虚拟化,跟vmware.xen.hy ...

  10. Linux平台oracle 11g单实例 + ASM存储 安装部署 快速参考

    操作环境:Citrix虚拟化环境中申请一个Linux6.4主机(模板)目标:创建单机11g + ASM存储 数据库 1. 主机准备 2. 创建ORACLE 用户和组成员 3. 创建以下目录并赋予对应权 ...

随机推荐

  1. WCF引用方式之IIS方式寄宿服务

    通过IIS方式寄宿服务 之前的例子是将控制台作为WCF的寄宿方式或者是直接添加契约项目的引用,然后通过配置或者是ChannelFactory的形式进行创建服务对象,其实在大多的开发中以IIS的形式创建 ...

  2. awk&sed 小实例

    1.打印文件奇数行sed -n 'p;n'sed 'n;d' sed -n '$!N;P'sed -n '1~2p'awk 'i=!i'awk 'NR%2'2.打印文件偶数行sed -n 'n;p's ...

  3. Asp.net中的web.config配置文件(转)

    最近开始学习.NET的开发,首先碰到的就是web.config的配置问题,把网上大虾的资料转发记录一下,以备不时之需. 原贴路径如下:http://blog.csdn.net/hbqhdlc/arti ...

  4. GOF23设计模式之策略模式(strategy)

    一.策略模式概述 策略模式对应于解决某一个问题的一个算法族,允许用户从该算法族中任选一种算法解决一个问题,同时可以方便的更换算法或者增加新的算法.并且由客户端决定调用哪个算法. 策略模式的本质: 分离 ...

  5. C# 中的委托和事件(1)

    引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去 ...

  6. rtmp 推送h264 + aac 的数据

    相关源码下载: http://download.csdn.net/detail/keepingstudying/8340431 需要libfaac,librtmp 的支持, 1.帧的划分 1.1 H. ...

  7. OCR (Optical Character Recognition,光学字符识别)

    OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗.亮的模式确定其形状,然后用字符识别方法将形状翻译 ...

  8. System.Security.Cryptography.CryptographicException: 系统找不到指定的文件

    默认为false 改为true

  9. Python的urllib和urllib2模块

    Python的urllib和urllib2模块都做与请求URL相关的操作,但他们提供不同的功能.他们两个最显着的差异如下: urllib2可以接受一个Request对象,并以此可以来设置一个URL的h ...

  10. 02_java之数据类型和基本运算

    01变量概述 * A: 什么是变量? * a: 变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水:你家里的大衣柜是容器,用来装载衣裤:饭盒是容器,用来装载 ...