`

keepalived+nginx高可用web架构实践

阅读更多

上一篇文章  《 keepalived+nginx打造高可用web应用的架构方案》 写了web server高可用架构的方案思路。

但是,

陆游教育我们纸上得来终觉浅,绝知此事要躬行。不操作一遍就是不会。

 

所以,这一篇是我对DNS+(keepalived & nginx反向代理)+web server三层架构的实践操作记录。

 

首先,我需要4台机器。两台做keepalived-nginx代理,两台做web server。哪儿来四台机器呢?靠vagrant 。 个人电脑上安装vagrant、virtualbox。vagrant是跨平台虚拟机管理工具,通过下载虚拟机镜像box文件和Vagranfile可以配置以启动N台虚拟机,非常方便。我这里用centos7.box启动四台虚拟机分别是keepalived1、keepalived2、web1、web2 。配置文件如下: 

vagrantfile 配置

 

第二,安装keepalived & nginx。 

登录keepalived1,先安装各种依赖

yum -y install gcc gcc-c++ autoconf automake make

 

yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

yum -y install ipvsadm

 

最后安装keepalived和nginx

   yum -y install keepalived

  下载nginx包,解压安装即可。

 

下面是master机器keepalived.conf配置。

keepaalived配置

设置vip 192.168.200.18 

 

机器192.168.2.11和192.168.2.12上配置keepalived.conf有区别,backup机器需要修改如下:

 

 

vrrp_instanceVI_1 {
    state BACKUP //初始化状态
    interface eth0
    virtual_router_id 51
    priority 99      //优先级,一定要比master的优先级要低
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.2.8
    }
}
 

 

 

然后是nginx负载均衡配置,负载量不大的时候这其实是master-backup配置,nginx自带服务检测。

 ngixn反向代理配置

 

机器192.168.2.11和192.168.2.12上nginx配置完全一致。

 

 第三,启动测试web server

web server测试机的准备我打算用docker,下载安装启动docker,因为国内下载镜像实在太慢了,所以配置docker镜像加速。创建 /etc/docker/daemon.json 文件配置如下:

 

{

"registry-mirrors": [

"https://kfwkfulq.mirror.aliyuncs.com",

"https://2lqq34jg.mirror.aliyuncs.com",

"https://pee6w651.mirror.aliyuncs.com",

"https://registry.docker-cn.com",

"http://hub-mirror.c.163.com"

],

"dns": ["8.8.8.8","8.8.4.4"]

}
 

 

这样就快多了,分别下载php-fpm和apache镜像:

 

dmiseev/php-fpm7.1        latest              a496a8708389        12 months ago       675MB

httpd                     2.4-alpine          141bb8d01fbd        3 weeks ago         127MB

 

然后就是启动docker,并且关联两个容器。

启动php-fpm 命令是: 

docker run -d --rm --name fpm -v "/data1/apache2/www:/php" a496a8708389  

-v参数是把镜像中php命令关联到宿主机项目路径下。

 

启动apache命令是:

 

docker run -d -p 80:80  --link fpm:php --rm --name httpd-service -v "/data1/apache2/www:/usr/local/apache2/htdocs/" 141bb8d01fbd

 

对外暴露80端口

-v命令关联项目和容器项目路径

 

配置apache。 需要让apache进行fcgi代理关联,本来可以在宿主机写好httpd.conf 通过-v命令管理,但是不知道为什么我加上 -v "/data1/apache2/conf/:/usr/local/apache2/conf/"  参数dockers启动一直失败。只好先启动docker,然后进入容器修改httpd.conf,然后重启apache。

 

首先测试web server。分别访问http://192.168.2.13/index.php  http://192.168.2.14/index.php 看到如下结果,表示web server启动成功。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

最后,启动nginx机器上keepalived,用ip 命令查看虚拟ip已经添加到eth0:,如下图:

 

 

 

 配置虚拟域名,进行访问测试,配置为 192.168.200.18 web.me  浏览器访问呢 web.me,结果如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

多次刷新发现13 、14两个web server依次被访问,这是nginx的反向代理没有设置负载均衡访问配置,默认轮询。  

 

登陆到192.168.2.11 或者 192.168.2.12 机器上kill掉nginx, 刷新浏览器发现web server依然可以访问,keepalived起到检测自动故障转移的功能。

 

这就保证了DNS+(keepalived & nginx反向代理)+web server三层架构的高可用性。

 

  • 大小: 41.3 KB
  • 大小: 27.8 KB
  • 大小: 38.7 KB
  • 大小: 10.6 KB
  • 大小: 10 KB
  • 大小: 53.6 KB
  • 大小: 9 KB
  • 大小: 8.9 KB
分享到:
评论

相关推荐

    nginx+keepalived+tomcat+redis文档

    这里配置Keepalived + Nginx + Tomcat + Redis的架构,其中:keepalived用于管理Virtual IP,与nginx一起搭配实现高可用性的反向代理前端;后端使用Tomcat管理web服务,并利用Redis实现session共享。

    Nginx Keepalived Tomcat MySQL高可用负载均衡Web应用架构实践.pdf

    Nginx Keepalived Tomcat MySQL高可用负载均衡Web应用架构实践.pdf

    高性能业务架构解决方案(LVS+Keepalived)

    高性能业务架构解决方案(LVS+Keepalived) Nginx/LVS/HAProxy的基于Linux的开源免费的负载均衡软件。对于大型的,需要进行高并发的网站或者对网络不太严格的场景...本文采用LVS+keepalived方案来解决业务架构高可用。

    lvs+keepalives部署.txt

    简介 Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从...高可用web架构: LVS+keepalived+nginx+apache+php+eaccelerator(+nfs可选 可不选)

    史上最牛逼的Nginx最佳实践教程从入门到精通

    19.Nginx+keepalived+proxy_cache配置高可用Nginx群集和高速缓冲 20.Nginx最难一战 优化指南 21.确保Nginx安全的10大关键技巧 Nginx变量详解 Nginx模块与实践案例 提供了目前所有互联网公司都在用的51个案例 常见...

    高性能业务架构解决方案(HAproxy+Keepalive)

    高性能业务架构解决方案(HAproxy+Keepalived) Nginx/LVS/HAProxy的基于Linux的开源免费的负载均衡软件。对于大型的,需要进行高并发的网站或者对网络不太...本文采用HAproxy+keepalived双主方案来解决业务架构高可用。

    基于Java应用的高并发高可用集群服务器的设计与实现_王瑛.pdf

    同时,使用lvs/nginx+keepalived做高并发高可用集群,整合tomcat容器,采用辅助软git和Nas技术,分别确保多个数据库之间的数据同步和多个web服务器之间的网页同步,最后,用监控软件监控整体服务器的运行情况。

    分布式负载均衡集群架构设计

    nginx+keepalived实现nginx双主高可用的负载均衡 两太负载均衡互为主从,由keepalived配置的具体调度算法调度负载均衡服务器 2.DNS轮询: DNS轮询请求负载均衡服务器,负载均衡服务器通过调度选择负载均衡服务器来...

    JavaEE大型分布式电商项目 淘淘商城 29期

    13、 部署方面使用LVS + keepalived + Nginx实现了双机主备、双主热备,实现了一个高可用的系统架构。 14、 项目开发采用团队式的开发,统一使用Maven私服构建项目,使用统一的SVN服务进行代码的管理。 【课程内容...

    Linux运维从入门到高级全套案例v3

    5. 7 MySQL主从高可用架构 102 5. 8 LVS+Keepalived负载均衡 110 5. 9 Squid缓存服务器配置 116 6. Linux下高并发系统内核优化 122 7. Nginx负载均衡机制及常见问题 124 8. Linux运维职业规划 127 9. Linux运维面试...

    Linux运维从入门到高级全套案例v3.rar

    目录 Linux入门篇 操作系统简介 1.2 Linux发展趋势 3 Linux系统安装 4 Linux学习技巧 2. Linux系统篇…… 2.1 Linux系统管理… 2.1.1 Linux目录初识 ...5.7 MySQL主从高可用架构… 5.8Ls+ Keepalived负载均衡

    《跟老男孩学Linux运维 Web集群实战》高清完整带详细书签

    着重讲解了Web集群后端的MySQL数据库、Web集群共享存储NFS、Nginx反向代理负载均衡、Keepalived高可用、Memcached缓存及session共享、Nagios企业级监控等技术实战,最后为读者规划了一个中等规模的网站集群架构解决...

    跟老男孩学linux运维:Web集群实战

    着重讲解了Web集群后端MySQL数据库、Web集群共享存储NFS、Nginx反向代理负载均衡、Keepalived高可用、Memcached缓存及session共享、Nagios企业级监控等技术实战,最后为读者规划了一个中等规模的网站集群架构解决...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    由国内著名技术社区联合推荐的2012年IT技术力作:《高性能Linux...14.4.2 利用LVS+Keepalived搭建高可用MySQL Slave集群 14.4.3 高可用Slave集群的一些注意点 14.5 部署MySQL集群要考虑的问题 14.6 本章小结

    跟老男孩学Linux运维 Web集群实战.pdf

    着重讲解了Web集群后端的MySQL数据库、Web集群共享存储NFS、Nginx反向代理负载均衡、Keepalived高可用、Memcached缓存及session共享、Nagios企业级监控等技术实战,最后为读者规划了一个中等规模的网站集群架构解决...

    跟老男孩学Linux运维:集群实战

    着重讲解了Web集群后端的MySQL数据库、Web集群共享存储NFS、Nginx反向代理负载均衡、Keepalived高可用、Memcached缓存及session共享、Nagios企业级监控等技术实战,最后为读者规划了一个中等规模的网站集群架构解决...

    Infrastructure

    使用Ansible进行IT基础架构部署IT基础架构提供: 操作: DNS服务器(主服务器和从服务器):配备Bind9 Web服务器:已配置Nginx Web应用程序:已配置Docker 数据库服务器:已配置MySQL 高可用性:配备HAproxy 负载...

Global site tag (gtag.js) - Google Analytics