Haproxy安装配置TCP反向代理

上次用Nginx进行反向代理TCP,发现测试还是还是几K的链接数就挂掉了,按官方的推荐使用Haproxy进行测试。

安装

安装命令:
yum install haproxy
haproxy的配置文件位于/etc/haproxy/, 为了防止出错,先备份原始配置文件:
cd /etc/haproxy/
mv haproxy.cfg haproxy.cfg.backup

Centos6命令:
启动/停止/重启: service haproxy start/stop/restart/

Centos7命令:
/bin/systemctl start haproxy.service
/bin/systemctl stop haproxy.service
/bin/systemctl restart haproxy.service

日志配置

配置rsyslog
我们需要使用rsyslog记录HAProxy的日志,编辑rsyslog.conf配置文件,打开UDP的514端口:
vim /etc/rsyslog.conf
去掉如下行的注释:

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
local3.* /var/log/haproxy.log #新添加这句

保存退出,重启服务rsyslog、Haproxy
重启rsyslog:
systemctl restart rsyslog

查看进程:

[root@ffm ~]# ps -ef | grep haproxy
root     10307     1  0 Aug14 ?        00:00:00 /usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
haproxy  10308 10307  0 Aug14 ?        00:00:00 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -Ds
haproxy  10309 10308  0 Aug14 ?        00:00:59 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -Ds
root     16723 16698  0 17:10 pts/0    00:00:00 grep --color=auto haproxy

配置文件

文件配置/etc/haproxy/haproxy.cfg

global #全局配置
   log 127.0.0.1 local3 info #
   maxconn 100000
   user haproxy
   group haproxy
   daemon          #设置为后台进程
   nbproc 4        #进程数量(可以设置多个进程提高性能) 
   ulimit-n 65535  #ulimit的数量限制


#Haproxy控制台管理
listen admin_stats
   stats    enable
   bind     *:9090  #ip
   mode     http    #
   option   httplog
   log      global
   maxconn  10
   stats    refresh 30s   #统计页面自动刷新时间
   stats    uri /admin    #访问的uri   ip:8080/admin
   stats    realm haproxy
   stats    auth admin:Redhat  #认证用户名和密码
   stats    hide-version   #隐藏HAProxy的版本号
   stats    admin if TRUE  #管理界面,如果认证成功了,可通过webui管理节点


#EMQ后台控制器展示      
frontend emqtt-admin-front
   bind *:18089
   mode http
   default_backend emqtt-admin-backend

backend emqtt-admin-backend
   mode http
   balance roundrobin
   server emq1 127.0.0.1:18083 check
   server emq2 127.0.0.3:18083 check


#EMQ前端TCP代理
frontend emqtt-front
   bind *:1889
   mode tcp  #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK  
   option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器  
   option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
   balance roundrobin    #负载均衡算法 
   maxconn 100000        #最大链接数
   timeout connect 60s   #连接超时 
   timeout client  30000 #客户端超时,
   ###timeout client 24h
   ##这个参数在使用EMQ压力测试时很有用,刚开始设备的超时时间过段,导致测试一小会儿就出现 {shutdown,connack_timeout}

   timeout server  30000 #服务器超时   
   default_backend mqtt


backend emqtt-backend
   balance roundrobin
   server emq1 127.0.0.1:1884 check inter 10000 fall 2 rise 5 weight 1
   server emq2 127.0.0.2:1884 check inter 10000 fall 2 rise 5 weight 1

控制台访问地址: http://127.0.0.1:9090/admin

你可能感兴趣的:(Haproxy,Server)