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

[经验分享] keepalived双主模式实现nginx高可用及LNAMMP架构

[复制链接]

尚未签到

发表于 2018-12-31 11:11:39 | 显示全部楼层 |阅读模式
  keepalived双主模式实现nginx高可用及LNAMMP架构
  一、利用keepalived实现nginx调度器高可用;
  二、构建LNAMMP架构:
  1) Nginx既是前端调度器,又是缓存服务器;
  2) 将php的session缓存于memcached中;
  3) 在Apache和php上部署Discuz论坛程序;
  4) 使用https连接,即使用户使用的是http协议也可以以https协议进行访问;
  -------------------------------------------------------------------------------------
  一、
  实验规划:
  director1: ip(172.16.1.8),虚拟ip(172.16.1.100)
  director2: ip(172.16.1.9),虚拟ip(172.16.1.200)
  RS1:    rip(172.16.1.3)
  RS2:    rip(172.16.1.6)
  1.首先关闭所有节点上iptables和selinux,同时进行时间同步。
  2.在两个后端RS上分别添加一个网页
  echo "www1.zrs.com" > /var/www/html/index.html
  echo "www2.zrs.com" > /var/www/html/index.html
  3.两个director配置
  安装keepalived
   yum -y install keepalived
  4.安装nginx
   此次用EPEL源的安装包,也可以编译安装
    ~]# cd /etc/yum.repos.d/
    ~]# vim nginx.repo
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=0
    enabled=1
    ~]# yum install -y nginx
  5.在nginx.conf配置文件中的http段内添加upstream内容,将后端两台RS加入到该upstream中
  upstream webservers {
      server 172.16.1.3;
      server 172.16.1.6;
  }
  server {
      listen 80;
      location / {
          proxy_pass http://webservers;
          proxy_set_header X-Real-IP $remote_addr;
      }
  }
  6.配置keepalived的主配置文件,实现对nginx的双主模式的高可用:
  keepalived的配置文件1:
! Configuration File for keepalived
global_defs {
   notification_email {
     root@localhost
   }
   notification_email_from  keepalived@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id drct1
   vrrp_mcast_group4 224.200.100.18
}
vrrp_instance VI_1 {
    state MASTER
    interface eno16777736
    virtual_router_id 81
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass zrs66zrs
    }
    virtual_ipaddress {
        172.16.1.100/32 brd 172.16.1.100  dev eno16777736 label eno16777736:0
    }
}
vrrp_instance VI_2 {
    state BACKUP
    interface eno16777736
    virtual_router_id 80
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass zrs88zrs
    }
    virtual_ipaddress {
        172.16.1.200/32 brd  172.16.1.200 dev eno16777736 label eno16777736:1
    }
}  

  keepalived的配置文件2:
!Configuration File for keepalived
global_defs {
   notification_email {
     root@localhost
   }
   notification_email_from keepalived@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id drct1
   vrrp_mcast_group4 224.200.100.18
}
vrrp_instance VI_1 {
    state BACKUP
    interface eno16777736
    virtual_router_id 81
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass zrs66zrs
    }
    virtual_ipaddress {
        172.16.1.200/32 brd 172.16.1.200 dev  eno16777736 label eno16777736:0
    }
}
vrrp_instance VI_2 {
    state MASTER
    interface eno16777736
    virtual_router_id 80
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass zrs88zrs
    }
    virtual_ipaddress {
        172.16.1.100/32 brd 172.16.1.100 dev  eno16777736 label eno16777736:1
    }
}  

  7.开启核心转发功能
  echo 1 > /proc/sys/net/ipv4/ip_forward
  查看keepalived状态


  测试一下

  关闭一个后端RS的httpd服务

  重新打开那个httpd服务

  客户端查看,由于是轮询模式,所以两个后端RS主机交替访问,分别查看两个虚拟ip地址,如下




  二、
  LNAMMP架构:Linux+Nginx+Apache+MySQL+Memcached+PHP
  1.在两个后端RS上创建数据库
  MariaDB [(none)]>  create database dzdb;
  MariaDB [(none)]> grant all on dzdb.*TO 'dzuser'@'172.16.%.%'IDENTIFIED BY'123456';
  MariaDB [(none)]> FLUSH PRIVILEGES;
  在两个后端RS上导入Discuz程序包,并解压,将解压出来的upload文件包移动到指定目录,并赋予必要的权限
  cp -R ./upload /var/www/html
  cd /var/www/html
  chown apache:apache -R ./upload
  cd upload/
  chmod -R 777 config
  chmod -R 777 data
  chmod -R 777 uc_client
  chmod -R 777 uc_server
  打开浏览器查看


  2.进行缓存设置,因为Nginx既是前端调度器,又是缓存服务器,所以选取其中一个调度器172.16.1.9作为这次的缓存服务器
  在172.16.1.9上安装并开启服务
  yum install -y memcached
  systemctl start memcached
  在后端两个RS上安装php和其连接memcache必要的扩展程序
  yum install -y php php-pecl-memcache
  修改/etc/php.ini该配置文件中的[Session]段中的缓存路径为如下,
  session.save_handler = memcache
  session.save_handler = "tcp://172.16.1.9:11211"
  重载httpd
  systemctl reload httpd
  配置一个测试页面,以测试缓存设置是否正常
  [root@zj03 upload]# cd /var/www/html
  [root@zj03 html]# vim sessstore.php
  配置内容如下
  

运维网声明 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-657905-1-1.html 上篇帖子: keepalived基础知识及高可用LVS模型实现 下篇帖子: 基于linux实现keepalived高可用的集群网站架构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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