反向代理优缺点:

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. elastic search6.2.2 实现用户搜索记录查询(去重、排序)

    elastic search6.2.2 实现搜索记录查询 ,类似新浪微博这种,同样的搜索记录后面时间点的会覆盖前面的(主要思路:关键词去重,然后按时间排序) 先创建索引 //我的搜索 PUT my_s ...

  2. cowboy动态页面的例子

    cowboy的动态页用的是erlydtl,需要先安装erlydtl模板引擎,或者你在dep里面添加 创建工程 rebar-creator create-app testCowboy testCowbo ...

  3. iso网络模型

    tcp/ip知识 1.iOS七层模型 应用层 表示层 应用层 ssh httpssl tls ftp mime html snmp 会话层 传输层 传输层 tcp udp 网络层 网络层 ipv6 i ...

  4. mysql 数据库 自动截取数据的问题---mysql的sql_model的四种模式:宽松模式、严格模式

    mysql支持的sql_mode模式:ANSI.TRADITIONAL.STRICT_ALL_TABLES和STRICT_TRANS_TABLES. ANSI模式:宽松模式,对插入数据进行校验,如果不 ...

  5. Memory leak by misusing Autofac

    Recently I’ve found out that we can easily cause a memory leaks in our .net application by improper ...

  6. <<杰克.韦尔奇自传>>

    <<杰克.韦尔奇自传>> 这本书号称是管理学十大经典名著,也是HR老师推荐的一本书.花了几个月时间断断续续拜读了这本书. GE是伟大的公司,杰克韦尔奇是伟大的CEO,这都毋庸置 ...

  7. 脱壳系列(四) - eXPressor 壳

    先用 PEiD 查一下壳 用 OD 载入程序 这里有一串字符串,是壳的名称和版本号 按 Alt+M 显示内存窗口 这里只有三个区段,后面两个是壳生成的,程序的代码段也包含在里面 利用堆栈平衡 按 F8 ...

  8. mysql数据库忘记密码时如何登录

    1.打开cmd命令提示符,进入上一步mysql.exe所在的文件夹即: 2.输入命令  mysqld --skip-grant-tables  回车,此时就跳过了mysql的用户验证 3.然后直接输入 ...

  9. [Z] SVN的trunk、branch、tag

    Subversion有一个很标准的目录结构,是这样的.比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是 svn://proj/|+-trunk+-branches+-ta ...

  10. ie6绝对定位的块会被select元素遮挡的解决方案

    RT(已无力吐槽ie),解决方法是:定义一个iframe,与想要显示的绝对定位的块设置为同一大小.放在同一个位置上.我的网页里绝对定位的元素是会随着鼠标移动显示和隐藏的,于是这个frame也要跟着显示 ...