设为首页 收藏本站
查看: 706|回复: 0

[经验分享] Keepalived 实现LVS

[复制链接]

尚未签到

发表于 2018-12-31 06:43:49 | 显示全部楼层 |阅读模式
Keepalived 实现LVS-DR和nginx的同时高可用集群

  第一步:安装LVS和Nginx,keepalived
  Yum–y install ipvsadm keepalived
  编译安装nginx
  ./configure–prefix=    ,make&&makeinstall
  第二步:设置ipvsadm规则
  Ipvsadm–A –t 10.10.1.62:3380 –s rr
  Ipvsadm–a –t 10.10.1.62:3380 –r 10.10.1.60 –g –w1
  Ipvsadm–a –t 10.10.1.62:3380 –r 10.10.1.61 –g –w1
  Ipvsadm–a –t 10.10.1.62:3380 –r 10.10.1.63 –g –w1
  Ipvsadm–A –t 10.10.1.88:80 –s rr
  Ipvsadm–a –t 10.10.1.88:80 –r 10.10.1.80 –g –w1
  Ipvsadm–a –t 10.10.1.88:80 –r 10.10.1.81 –g –w1
  保存规则:ipvsadm –S< /jiaoben/ipvsadm.txt
  第三步:配置nginx的配置文件。
#user  nobody;
worker_processes  4; #启动的进程数,建议cpu的核数
#error_log  logs/error.log;
#error_log logs/error.log  notice;
#error_log logs/error.log  info;
#pid        logs/nginx.pid;
events {
  use epoll;
  worker_connections  65535;  #进程的最大连接数
  }
http {
  include       mime.types;
  default_type application/octet-stream;
  #log_format main  '$remote_addr - $remote_user[$time_local] "$request" '
  #'$status $body_bytes_sent"$http_referer" '
  # '"$httpuser_agent""$http_x_forwarded_for"';
  #access_log logs/access.log  main;
  server_tokens off;   #隐藏版本信息
  sendfile       on;
  #tcp_nopush    on;
  #keepalive_timeout  0;
  keepalive_timeout  65;
  #gzip on;
  upstream tomcat {
  ip_hash;
  server 10.10.1.60:8080 max_fails=2 fail_timeout=10s;
  server10.10.1.61:8080  max_fails=2fail_timeout=10s;
  server10.10.1.63:8080  max_fails=2fail_timeout=10s;
  }
  server {
  listen       80;
  server_name  localhost;
  #charset koi8-r;
  #access_log logs/host.access.log  main;
  location / {
  root /tms;
  index login.jsp
  proxy_set_header X-Frworded-For$remote_addr;
  proxy_set_header Host $host;
  proxy_pass http://tomcat;
  }
  }
  第四步:keepalived的配置文件的修改
  ! Configuration File for keepalived
  global_defs {
  notification_email {
  root@localhost
  }
  notification_email_from Alexandre.Cassen@firewall.loc
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id LVS_DEVEL
  }
  vrrp_instance VI_1 {
  state BACKUP         #从机
  interface eth0
  virtual_router_id 51
  priority 150         #定义优先级,数字大优先极高
  advert_int 1
  nopreempt            #不抢占
  authentication {
  auth_type PASS   #简单的连接样式
  auth_pass 1111   #简单的密码
  }
  virtual_ipaddress {
  10.10.1.62/32 dev eth0
  10.10.1.88/32 dev eth1
  }
  }
  virtual_server 10.10.1.62 3380 {
  delay_loop 6
  lb_algo rr                 #LVS调度算法
  lb_kind DR                 #LVS集群模式
  nat_mask 255.255.255.255
  #  persistence_timeout 50    #绘画保持时间/秒
  protocol TCP               #使用的协议
  real_server 10.10.1.60 3380 {
  weight 1               #默认为1,0为失效
  inhibit_on_failure     #健康检查失败,将weight设为0失效,而不在ipvs里删除
  TCP_CHECK {
  connect_port 3380      #连接端口
  bindto 10.10.1.60      #绑定Ip
  # url {               可以检测多个url
  #  path /mrtg/
  #  digest9b3a0c85a887a256d6939da88aabd8cd
  # }
  connect_timeout 3      #连接超时
  nb_get_retry 3         #重试次数
  delay_before_retry 3   #重连间隔时间
  }
  }
  real_server 10.10.1.61 3380 {
  weight 1
  inhibit_on_failure     #健康检查失败,将weight设为0失效,而不在ipvs里删除
  TCP_CHECK {
  connect_port 3380      #连接端口
  bindto 10.10.1.61      #绑定Ip
  # url {              可以检测多个url
  #  path /mrtg/
  #  digest9b3a0c85a887a256d6939da88aabd8cd
  # }
  connect_timeout 3      #连接超时
  nb_get_retry 3         #重试次数
  delay_before_retry 3   #延迟时间
  }
  }
  real_server 10.10.1.63 3380 {
  weight 1
  inhibit_on_failure     #健康检查失败,将weight设为0失效,而不在ipvs里删除
  TCP_CHECK {
  connect_port 3380      #连接端口
  bindto 10.10.1.63
  # url {              可以检测多个url
  #  path /mrtg/
  #  digest9b3a0c85a887a256d6939da88aabd8cd
  # }
  connect_timeout 3      #连接超时
  nb_get_retry 3         #重试次数
  delay_before_retry 3   #延迟时间
  }
  }
  #=================nginx的HA========啊万恶的分割线啊!!==================================
  virtual_server 10.10.1.88 80 {
  delay_loop 6
  nat_mask 255.255.255.255
  #  persistence_timeout 50
  protocol TCP
  real_server 10.10.1.80 80 {
  weight 1
  inhibit_on_failure     #健康检查失败,将weight设为0失效,而不在ipvs里删除
  TCP_CHECK {                #tcp检测
  connect_port 80       #连接端口
  # url {              可以检测多个url
  #  path /mrtg/
  #  digest9b3a0c85a887a256d6939da88aabd8cd
  # }
  connect_timeout 3      #连接超时
  nb_get_retry 3         #重试次数
  delay_before_retry 3   #延迟时间
  }
  }
  real_server 10.10.1.81 80 {
  weight 1
  inhibit_on_failure     #健康检查失败,将weight设为0失效,而不在ipvs里删除
  TCP_CHECK {                #tcp检测
  connect_port 80       #连接端口
  # url {              可以检测多个url
  #  path /mrtg/
  #  digest9b3a0c85a887a256d6939da88aabd8cd
  # }
  connect_timeout 3      #连接超时
  nb_get_retry 3         #重试次数
  delay_before_retry 3   #延迟时间
  }
  }
  }
  注意:keepalived.conf的配置
  stateBACKUP  的状态均为从,
  priority100         #定义优先级,数字大优先极高,决定主从。
  

  唯一的不足时当nginx的宕掉是,keepalived是不会漂移的,需要增加检测脚本,当nginx挂掉时,强制keepalived stop。
  

  

  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-657737-1-1.html 上篇帖子: RHEL5.5上搭建LVS+keepalived负载均衡 下篇帖子: CENTOS5下采用LVS +KEEPALIVED实现负载均衡
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表