反向代理优缺点:

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. jquery 操作单选按钮

    <input type="radio" name="sex" value="男" />男 <input type=&quo ...

  2. TCP/IP网络编程系列之三(初级)

    TCP/IP网络编程系列之三-地址族与数据序列 分配给套接字的IP地址和端口 IP是Internet Protocol (网络协议)的简写,是为首发网络数据而分配给计算机的值.端口号并非赋予计算机值, ...

  3. (转)winform安装项目、安装包的制作、部署

    本文转载自:http://zhan.renren.com/cxymst?gid=3602888498037535727&from=post&checked=true 1,解决方案—添加 ...

  4. rtmp发送H264及aac的音视频

    RTMP推送的音视频流的封装形式和FLV格式相似,由此可知,向FMS推送H264和AAC直播流,需要首先发送"AVC sequence header"和"AAC sequ ...

  5. 1006 Sign In and Sign Out (25)(25 分)思路:普通的时间比较题。。。

    1006 Sign In and Sign Out (25)(25 分) At the beginning of every day, the first person who signs in th ...

  6. 杂项:HTML5-2/3-新元素

    ylbtech-杂项:HTML5-2/3-新元素 自1999年以后HTML 4.01 已经改变了很多,今天,在HTML 4.01中的几个已经被废弃,这些元素在HTML5中已经被删除或重新定义. 为了更 ...

  7. Linux命令-chmod、chown和chgrp

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁 ...

  8. Linux学习笔记 -- stdin/stdout 重定向

    输入/输出重定向 Linux系统通常从一个叫标准输入的地方读取输入并且将一个命令的结果以写入到标准输出反馈给我们:默认情况下,这也是我们使用的终端(命令行).如果我们想改变输入和输出的方式,就需要使用 ...

  9. Clustering Factor——索引的成本指标

    使用索引是我们面对海量数据搜索是一种常用的手段.通过有效的索引访问,可以使我们更快的访问到需要的数据,减少物理.逻辑IO,从而提高系统性能.在CBO时代,Oracle对于提交SQL的执行路径是有所选择 ...

  10. Python图片转字符

    前段时间学习pillow写的,可以通过改变font_map改变转换的深度和字符.思路是先转换黑白大小,读取黑白值取范围读font_map转变. from PIL import Image,ImageD ...