wlzxwfk 发表于 2018-11-16 11:34:08

Nginx HA安装

  原理概述

  通过keepalived提供的VRRP,以及心跳监测技术实现两台主机的双击热备功能。
安装环境描述
  硬件环境:
  CPU:                                    Intel(R) Xeon(R) CPU E5506 虚拟机
  Mem:                        1G
  Disk:                                    10G
  软件环境:
  OS:                               RHEL5.332bit
  Nginx:                         nginx-1.0.8
  Pcre:                            pcre-8.13
  Google-perftools:google-perftools-1.7
  Keepalived:            keepalived-1.2.2
安装过程
Nginx安装

[*]  安装PCRE(正则匹配)模块
  tar-zxvf pcre-8.13.tar.gz –C /tmp
  cd/tmp/pcre && ./configure &&make && make install

[*]  安装google-perftool(google高性能内存操作模块)
  tar-zxvfnginx-1.0.8.tar.gz –C /tmp
  cd/tmp/nginx-1.0.8&& ./configure &&make && make install

[*]  安装nginx
  ./configure--user=nobody --group=nobody --prefix=/usr/local/nginx\
  --with-http_stub_status_module\            #nginx状态监控模块
  --with-http_ssl_module\                           #https 支持模块
  --with-http_flv_module\                              #流媒体支持模块
  --with-http_gzip_static_module\            #gzip支持模块
  --with-google_perftools_module            #goole-perftools支持模块
  Make && make install
Keepalived安装

[*]  安装Keepalived
  tar-zxvfkeepalived-1.2.2.tar.gz –C /tmp
  cd/tmp/keepalived&& ./configure –prefix=/ && make && make install

[*]  配置Keepalived
  编辑keepalived主配置文件/etc/keepalived/keepalived.conf,如下:
  global_defs{                                                                                       #全局配置
  notification_email {                                                                      #邮件通知配置
  lingjie@gyyx.cn
  }
  notification_email_from nginx@gyyx.cn
  smtp_server 127.0.0.1
  smtp_connect_timemout 30
  router_id nginx.gyyx.cn                                                            #router_id配置(主从必须一致)
  }
  vrrp_scriptcheck_run {                                                                      #nginx监控脚本配置
  script "/home/check_nginx.sh"
  weight -5
  interval 5
  }
  vrrp_sync_groupVG1 {
  group {
  VI_1
  }
  }
  vrrp_instanceVI_1 {                                                                           #监控实例配置
  state BACKUP                                                                           #标记状态为从
  interface eth1                                                                           #监听网卡
  virtual_router_id 60                                                                  #实例router_id
  priority 90                                                                                     #优先级(优先级大者为主)
  mcast_src_ip 10.0.1.218                                                         #广播地址(本地IP)
  authentication {                                                                        #主从认证配置
  auth_type PASS
  auth_pass 1q2w3e4r
  }
  track_script {                                                                               #启用监控脚本
  check_run
  }
  virtual_ipaddress {                                                                     #虚拟IP配置
  219.238.232.219/26 dev eth0
  219.238.232.227/26 dev eth0
  }
  virtual_routes {                                                                                     #虚拟路由配置
  0.0.0.0/0.0.0.0 via 219.238.232.195 deveth0
  }
  }

[*]  Nginx监控脚本配置
  监控脚本主要通过访问本地的1080端口(nginx.conf里配置的监控url),去监控Nginx的服务状态,如果没有问题返回0,如果有问题返回1
  #!/usr/bin/env bash
  #This script is used by keepalived for checking nginx running status
  CHECK_TIME=2
  check()
  {
  curl -m 2http://127.0.0.1:1080/status >/dev/null 2>&1
  return $?
  }
  while [ $CHECK_TIME -ne 0 ]
  do
  let "CHECK_TIME-= 1"
  check
  NGINX_OK=$?
  if [ $NGINX_OK -eq 0];then
  exit 0
  fi
  if [ $NGINX_OK -ne 1 ]&&[ $CHECK_TIME -eq 0 ]
  then
  exit 1
  fi
  done
安装测试
  1.      Nginx 可以正常提供服务。
  2.      http://127.0.0.1:1080/status 状态URL可以正常提供服务
  3.      Keepalived可以正常启动
  4.      模拟服务宕机后,另一台热备机器可以接管资源
结论
  Keepavlied的双机主要需要注意的是对于服务的监控,尽可能的监控到最贴近用户请求的过程。

页: [1]
查看完整版本: Nginx HA安装