haproxy的配置和一些报错

首先建立了两个tomcat服务器

  173.16.80.104:3020  

  173.16.80.70:8090 

下载haproxy

sudo yum install haproxy

一般在/etc/haproxy

编辑配置文件 sudo vi haproxy.cfg

global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        root
    group       root
    daemon


    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats


defaults
    log global
    mode http
    option http-keep-alive
    option httplog
    timeout connect 5000ms
    timeout client 10000ms
    timeout server 50000ms
    timeout http-request 20000ms
    balance roundrobin


listen stats
    mode http
    log 127.0.0.1 local0 err
    bind  0.0.0.0:1088
    stats enable
    stats hide-version
    stats uri     /stats
    stats refresh 30s
    stats auth    admin:admin
    stats admin if TRUE


listen tomcat
    bind 0.0.0.0:5222
    mode http
    maxconn 300
    log 127.0.0.1 local0 debug
    balance roundrobin
    server  static1 173.16.80.104:3020 check inter 2000 fall 3 weight 30
    server  static2 173.16.80.70:8090 check inter 2000 fall 3 weight 30
配置文件解释
###########全局配置#########

global
    log         127.0.0.1 local2  
 (log 127.0.0.1 local0 #[日志输出配置,所有日志都记录在本机,通过local0输出]
  log 127.0.0.1 local1 notice #定义haproxy 日志级别[error warringinfo debug])

    chroot      /var/lib/haproxy   #chroot运行路径

    pidfile     /var/run/haproxy.pid  #haproxy 进程PID文件

    maxconn     4000 #默认最大连接数,需考虑ulimit-n限制

    user        root    #运行haproxy的用户

    group       root     #运行haproxy的用户所在的组

    daemon       #以后台形式运行harpoxy


    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

########默认配置############

defaults
    log global
    mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK

    option http-keep-alive #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip

    option httplog #每次请求完毕后主动关闭http通道,haproxy不支持keep-alive,只能模拟这种模式的实现

    timeout connect 5000ms #连接超时

    timeout client 10000ms #客户端超时

    timeout server 50000ms #服务器超时
 #timeout http-keep-alive10s #默认持久连接超时时间

 #timeout queue 1m #默认队列超时时间

    timeout http-request 20000ms #默认http请求超时时间

    balance roundrobin #设置默认负载均衡方式,轮询方式
 
 #balance source #设置默认负载均衡方式,类似于nginx的ip_hash

 #balnace leastconn #设置默认负载均衡方式,最小连接数


########统计页面配置########

listen stats
    mode http #http的7层模式

    log 127.0.0.1 local0 err #错误日志记录

    bind  0.0.0.0:1088 #设置Frontend和Backend的组合体,监控组的名称,按需要自定义名称

    stats enable
    stats hide-version #隐藏统计页面上HAProxy的版本信息

    stats uri     /stats #统计页面url

    stats refresh 30s #统计页面自动刷新时间

    stats auth    admin:admin #设置监控页面的用户和密码:admin,可以设置多个用户名

    stats admin if TRUE #设置手工启动/禁用,后端服务器(haproxy-1.4.9以后版本)

########backend后端配置##############


listen tomcat
    bind 0.0.0.0:5222
    mode http
    maxconn 300
    log 127.0.0.1 local0 debug
    balance roundrobin
    server  static1 173.16.80.104:3020 check inter 2000 fall 3 weight 30 #设服务器信息
    server  static2 173.16.80.70:8090 check inter 2000 fall 3 weight 30  #设服务器信息
重新启动[chenwb@hadoop03 haproxy]$ sudo systemctl restart haproxy
运行 [chenwb@hadoop03 haproxy]$ sudo haproxy -f /etc/haproxy/haproxy.cfg

检查两个tomcat是否成功 

浏览器地址栏输入配置的ip+端口 出现以下页面

然后在浏览器地址栏输入

http://173.16.80.70:1088/stats

得到一下的页面表示成功配置

如果出现一下的错误

[WARNING] 079/184258 (56658) : config : log format ignored for proxy 'stats' since it has no log address.

[WARNING] 079/184258 (56658) : config : log format ignored for proxy 'tomcat' since it has no log address.

只是没配置日志

[WARNING] 079/184258 (56658) : [haproxy.main()] Cannot raise FD limit to 8034.
[ALERT] 079/184258 (56658) : Starting frontend GLOBAL: error when trying to preserve previous UNIX socket [/var/lib/haproxy/stats]
[ALERT] 079/184258 (56658) : Starting proxy stats: cannot listen to socket [127.0.0.1:8066]
[ALERT] 079/184258 (56658) : Starting proxy tomcat: cannot listen to socket [0.0.0.0:5111]

修改配置为上面的配置文件内容 然后使用sudo启动就可以了

 

附录:2个jboss的配置

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
#replace the user and group
    user        haproxy
    group       haproxy
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

    tune.bufsize 65536

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------

frontend ft_web
    bind 0.0.0.0:18080
    default_backend jboss

#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend jboss
    balance     leastconn
    cookie SERVERID insert indirect nocache
#replace your ip for ip1 and ip2
    server ps1 ip1:8080 check cookie ps1
    server ps2 ip2:8080 check cookie ps2



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Haproxy 是一款开源的负载均衡软件,它可以将客户端的请求分发到多个后端服务器上,实现高可用和高性能。下面是 Haproxy 配置的详解: 1. 全局配置: 在配置文件的顶部,你可以设置一些全局的参数,如日志记录、最大并发连接数等。例如: ``` global log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy stats socket /run/haproxy/admin.sock mode 660 level admin stats timeout 30s user haproxy group haproxy daemon ``` 这里设置了日志记录到本地,并指定了管理员的访问权限。 2. 默认配置: 在全局配置之后,可以设置默认的参数,这些参数会应用到所有的后端服务器。例如: ``` defaults log global mode http option httplog option dontlognull timeout connect 5000 timeout client 50000 timeout server 50000 ``` 这里将日志记录设置为全局生效,使用 HTTP 模式,并设置了连接和超时时间。 3. 前端配置: 在 Haproxy 中,前端指的是接收客户端请求的部分。你可以指定监听的 IP 和端口,并设置一些负载均衡算法。例如: ``` frontend www-frontend bind *:80 mode http default_backend www-backend frontend api-frontend bind *:8080 mode http default_backend api-backend ``` 这里定义了两个前端配置,分别监听 80 和 8080 端口,并分发到对应的后端服务器。 4. 后端配置: 在前端配置之后,需要指定后端服务器的地址和端口,并设置一些额外的参数。例如: ``` backend www-backend mode http balance roundrobin option httpchk HEAD /index.html HTTP/1.1\r\nHost:localhost server web1 192.168.0.1:80 check server web2 192.168.0.2:80 check backend api-backend mode http balance leastconn option httpchk GET /healthcheck server api1 192.168.0.3:8080 check server api2 192.168.0.4:8080 check ``` 这里定义了两个后端配置,使用不同的负载均衡算法,并设置了健康检查和服务器的地址。 以上是 Haproxy 配置的一些基本说明,你可以根据自己的需求进行灵活配置。请注意,配置文件的语法要符合 Haproxy 的要求,否则可能会导致错误或无效的配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值