标签:ddr 导致 backend pid 自动 col chroot ade keep
自己的服务器到期,转移自己博客内容至此。
haproxy官网:www.haproxy.org
keepalived官网:www.keepalived.org
本站下载:haproxy-1.8.3.tar.gz
本站下载:keepalived-1.4.0.tar.gz
本站下载:keepalived启动服务文件
环境:
web01: 10.8.8.51 centos7
web02: 10.8.8.52 centos7
haproxy_master:10.8.8.53 centos7 vip:10.8.8.55
haproxy_backup:10.8.8.54 centos7 vip:10.8.8.55
访问测试端:windows 10
iptables防火墙允许两台keepalived机子互访:
在haproxy_master上添加: -A INPUT -s 10.8.8.54 -j ACCEPT
在haproxy_backup上添加:-A INPUT -s 10.8.8.55 -j ACCEPT
1 $ cd /home/eleven/tools/ #进入任意存放安装包目录 2 $ wget http://www.haproxy.org/download/1.8/src/haproxy-1.8.3.tar.gz 3 #下载haproxy1.8.3版本,被墙时,用浏览器下载,然后上传至服务器 4 $ tar xf haproxy-1.8.3.tar.gz #解压 5 $ cd haproxy-1.8.3 #进入目录 6 $ uname -r #查看内核 7 3.10.0-514.el7.x86_64 8 $ make TARGET=linux2628 ARCH=x86_64 PREFIX=/usr/local/haproxy 9 #编译haproxy,不同的Linux内核,编译参数不同 10 $ make install PREFIX=/usr/local/haproxy #安装haproxy到指定目录
1 $ vi /usr/local/haproxy/haproxy.cfg #新建配置文件,添加以下内容 2 global 3 log 127.0.0.1 local1 4 maxconn 65000 #最大连接数 5 # chroot /usr/local/haproxy #安装目录 6 # uid haproxy #用户haproxy 7 # gid haproxy #组haproxy 8 daemon #守护进程运行 9 nbproc 1 #进程数量 10 # pidfile /usr/local/haproxy/logs/haproxy.pid #haproxy pid 11 12 defaults 13 log global 14 mode http #7层#默认的模式mode {tcp|http|health},tcp是4层,http是7层,health只会返回OK 15 option httplog #http 日志格式 16 option httpclose #主动关闭http通道,HA-Proxy不支持keep-alive模式 17 option redispatch #serverId对应的服务器挂掉后,强制定向到其他健康的服务器 18 option forwardfor except 127.0.0.1/8 19 #后端服务器需要获得客户端的真实IP,将从Http Header中获得客户端IP 20 option dontlognull #来防止记录 Alteo(4层负载均衡)发出的健康检测,如果一个 session 交互没有数据,这个 session就不会被记录 21 retries 3 22 maxconn 50000 #最大连接数 23 timeout http-request 10s 24 timeout queue 1m 25 timeout connect 10s 26 timeout client 1m 27 timeout server 1m 28 timeout http-keep-alive 10s 29 timeout check 10s 30 31 #errorfile 502 /usr/local/haproxy/html/maintain.html 32 #errorfile 503 /usr/local/haproxy/html/maintain.html 33 #errorfile 504 /usr/local/haproxy/html/maintain.html 34 35 frontend main 36 bind *:80 #监听地址 37 acl url_static path_beg -i /static /images /javascript /stylesheets 38 acl url_static path_end -i .jpg .gif .png .css .js 39 use_backend static if url_static 40 default_backend my_webserver 41 #定义一个名为my_app前端部分。此处将对于的请求转发给后端 42 backend static 43 #使用了静态动态分离(如果url_path匹配 .jpg .gif .png .css .js静态文件则访问此后端) 44 balance roundrobin #负载均衡算法(#banlance roundrobin 轮询) 45 server static 127.0.0.1:80 check 46 #静态文件部署在本机(也可以部署在其他机器或者squid缓存服务器 47 acl host_www hdr_reg(host) -i ^(www.haproxy.test|haproxy.test) #测试用的域名 48 49 backend my_webserver 50 mode http 51 option forwardfor 52 balance roundrobin 53 cookie SERVERID 54 option httpchk HEAD /index.html 55 server web01 10.8.8.51:80 cookie web01 check inter 2000 rise 3 fall 3 weight 3 56 server web02 10.8.8.52:80 cookie web02 check inter 2000 rise 3 fall 3 weight 3 57 stats enable 58 #启用统计页;基于默认的参数启用页面信息,通过访问此页面能显示华丽的web状态界面 59 stats uri /stats #默认uri页面信息,不安全,可以自己定义页面的uri
以上为haproxy配置文件内容,可删除#注释行。
1 $ /usr/local/tengine/sbin/nginx -s stop 2 $ chkconfig nginx off 3 #关闭本机的nginx服务,因为haproxy配置文件用的是80端口,防止端口冲突 4 $ /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg 5 #指定配置文件启动 6 [root@haproxy_master ~]# lsof -i:80 #查看80端口 7 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME 8 haproxy 3962 root 4u IPv4 32829 0t0 TCP *:http (LISTEN) 9 haproxy 3962 root 8u IPv4 32871 0t0 TCP haproxy_master:35201->10.8.8.51:http (SYN_SENT)
win 10浏览器打开监控页面测试是否安装成功:
以同样的方法在haproxy_backup,ip为10.8.8.54上安装haproxy。
在web01、web02上搭建简单的测试页面,测试haproxy负载均衡。
web01、web02分别弄个测试页面,域名为haproxy.test。
hosts文件分别指向haproxy_master、haproxy_backup的ip,添加hosts如下:
10.8.8.53 www.haprox.test haproxy.test
#10.8.8.54 www.haproxy.test haproxy.test
通过访问负载均衡haproxy_master,自动跳转至web01、web02:
刷新一下便会自动跳转至web02,haproxy.cfg配置文件使用的是轮询算法:
此时再打开http://10.8.8.53/stats监控页面,web01、web02的status状态为up在线。
至此,haproxy_master测试正常,修改hosts测试haproxy_backup正常,haproxy安装完成。
haproxy安装完成后,实现了负载均衡。keepalieved将haproxy实现高可用性,当主服
务器haproxy_master出现故障或宕机时,另一台备用服务器haproxy_backup将自动接管。
1 $ yum install openssl-devel psmisc libnl* libnfnetlink-devel -y #安装依赖 2 $ cd /home/eleven/tools/ 3 $ wget http://www.keepalived.org/software/keepalived-1.4.0.tar.gz 4 $ cd keepalived-1.4.0 5 $ ./configure –prefix=/usr/local/keepalived #编译安装,注意两个横线–prefix 6 $ make 7 $ make install
$ cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ $ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ $ touch /etc/init.d/keepalived $ chmod +x /etc/init.d/keepalived $ vi /etc/init.d/keepalived #编辑keepalived启动文件,内容如下: 由于本站编码字体格式不同,复制导致文件不可用,本站下载:keepalived启动服务文件
1 $ mkdir /etc/keepalived/ 2 $ cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ 3 $ vi /etc/keepalived/keepalived.conf #编辑配置文件,更改为以下内容: 4 由于本站编码字体格式不同,复制可能导致文件不可用,keepalived配置文件
keepalived配置文件:
1 global_defs { 2 notification_email { 3 #mr@mruse.cn #配置邮件,邮件服务器等,可以不用配置。zabbix监控。 4 #sysadmin@firewall.loc 5 } 6 notification_email_from xxx@163.com 7 smtp_server smtp@163.com 8 smtp_connect_timeout 30 9 router_id LVS_1 10 } 11 12 vrrp_instance VI_1 { 13 state MASTER #另一台haproxy_bakcup机子改为BACKUP 14 interface eth0 15 virtual_router_id 51 16 priority 100 #另一台haproxy_bakcup机子改为50 17 advert_int 1 18 authentication { 19 auth_type PASS 20 auth_pass MrUse 21 } 22 virtual_ipaddress { 23 10.8.8.55 24 } 25 }
1 $ service keepalived start #启动keepalived 2 $ service keepalived stop #停用keepalived 3 $ service keepalived status #查看keepalived 4 $ service keepalived restart #重启keepalived 5 6 $ ps -ef|grep keepalived |grep -v grep 7 root 8767 1 0 15:51 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D 8 root 8768 8767 0 15:51 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D 9 root 8769 8767 0 15:51 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D 10 #查看keepalived进程,有3个-D说明成功
以同样的方法在haproxy_backup服务器上安装haproxy跟keepalived。
keepalived的backup配置文件相对于master修改如下:
state BACKUP
priority 50
1 [root@haproxy_master ~]# ip addr sh eth0 #查看ip,或直接用ip addr命令 2 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 3 link/ether 00:0c:29:ca:46:75 brd ff:ff:ff:ff:ff:ff 4 inet 10.8.8.53/24 brd 10.8.8.255 scope global eth0 5 valid_lft forever preferred_lft forever 6 inet 10.8.8.55/32 scope global eth0 7 valid_lft forever preferred_lft forever 8 inet6 fe80::7874:1014:1870:f00d/64 scope link 9 valid_lft forever preferred_lft forever
1 [root@haproxy_backup ~]# vi /etc/rc.local #添加以下两行 2 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg 3 service keepalived start 4 #注意rc.local是否有执行权限,否则开机不会自启动。
至此,haproxy+keepalived搭建完成,需要注意的是两台机子防火墙添加允许互访。
标签:ddr 导致 backend pid 自动 col chroot ade keep
原文地址:https://www.cnblogs.com/catinsky/p/9138480.html