目的:

  当用户请求访问时,会通过nginx来访问web服务应用,因此我们必须要保证nginx的高可用,要保证nginx的高可用,我们需要通过keepalived来监控nginx,并对外提供1个虚拟的vip当做ip供用户访问,当用户访问时先访问虚拟的ip即keepalive-master,此时keepalive-master会通过脚本程序监控自己本机下的nginx是否启动,如果启动直接访问,如果挂机,keepalive-master会将自身线程杀掉,然后绑定到keepalived-backup备机上,然后备机会接管keepalive-master的工作,继续访问本机上的nginx,以完成用户的本次请求。

一.准备工作

  1.准备2台linux虚拟机,分别安装 jdk,tomcat,nginx,ipvs,keepalived,(详见安装)

  2.设置

    1.虚拟ip为: 192.168.25.125

    2.Master主机ip为:192.168.25.128 ,nginx 端口:80  tomcat 端口为: 8080

    3backupr主机ip为:192.168.25.129 ,nginx 端口:80  tomcat 端口为: 8080

二.在nginx.conf的配置文件中配置tomcat的负载均衡

  进入命令: vim /usr/local/nginx/conf/nginx.conf

  1.在128 和129 两个节点了配置如下内容:

upstream cc.com {
server 192.168.25.128:8080;
server 192.168.25.129:8080;
} location / {
proxy_pass http://cc.com;
}

   2.配置 tomcat的配置文件端口

    进入命令: vim /usr/local/install/tomcat/conf/server.xml

      

    

  3.启动 tomcat

    进入命令: cd /usr/local/install/tomcat/bin/

    启动命令: sh startup.sh

    关闭命令:sh shutdown.sh

    进入命令: cd /usr/local/install/tomcat/logs/ && ll

    查看日志: tail -f catalina.out

    

  4.启动nginx

    启动命令:  /usr/local/nginx/sbin/nginx

    

三.Keepalived设置shell脚本

   1.创建脚本文件:

     进入命令: cd /usr/local/install/keepalived/etc/keepalived && ll

     创建文件:     vim nginxCheck.sh

NGINX=/usr/local/nginx/sbin/nginx
PROT=80
nmap localhost -p $PORT | grep "$PORT/tcp open" #echo $?
if [ $? -ne 0 ];then
$NGINX -s stop
$NGINX
sleep 3
nmap localhost -p $PORT | grep "$PORT/tcp open"
[ $? -ne 0] && cd /usr/local/install/keepalived/sbin && pkill keepalived echo "over"
fi

    注意: 要对这个脚本文件设置权限 chmod 777 nginxCheck.sh

   2.在keepalived.conf中添加对脚本的调用

     进入命令: cd /usr/local/install/keepalived/etc/keepalived && ll

     编辑命令: vim keepalived.conf

      

     1.在vrrp服务器配置前增加:

      vrrp_script chk_http_port {

        script "/usr/local/install/keepalived/etc/keepalived/nginxCheck.sh"

        interval 2

        weight 2

      }

      

    2.在vrrp_instance 配置的最后部分添加:

      track_script {

        chk_http_prot

      }

     

   3.启动keepalived

      进入命令:  cd /usr/local/install/keepalived/sbin && ll

      启动命令:    ./keepalived -f /usr/local/install/keepalived/etc/keepalived/keepalived.conf

      

四.测试、访问

  1.测试

    命令: ip add

    

  2.访问

    在地址栏输入:  192.168.25.125

    

keepalived与nginx安装的更多相关文章

  1. LVS + Keepalived + Nginx安装及配置

    1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...

  2. 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置

    1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...

  3. KeepAlived+Nginx 安装

    yum install -y gcc gcc-c++ openssl openssl-devel 目前keepalived最新版本下载:[root@rhel ~]#wget -c http://www ...

  4. linux安装Nginx 以及 keepalived 管理Nginx

    linux安装Nginx 1.1将Nginx素材内容上传到/usr/local目录(pcre,zlib,openssl,nginx)(注意:必须登录用对这个文件具有操作权限的) 1.2安装pcre库 ...

  5. LVS+Nginx(LVS + Keepalived + Nginx安装及配置)

    (也可以每个nginx都挂在上所有的应用服务器)  nginx大家都在用,估计也很熟悉了,在做负载均衡时很好用,安装简单.配置简单.相关材料也特别多. lvs是国内的章文嵩博士的大作,比nginx被广 ...

  6. 6.第五篇 安装keepalived与Nginx

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483796&idx=1&sn=347664de ...

  7. Net分布式系统之三:Keepalived+LVS+Nginx负载均衡之高可用

    上一篇写了nginx负载均衡,此篇实现高可用(HA).系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致整个系统无法正常运行.针对系统架构设计的高可用要求,我们需要解决Nginx ...

  8. keepalived对nginx高可用演练脚本

    keepalived对nginx高可用演练脚本 参考文章:http://deidara.blog.51cto.com/400447/302402/ .安装nginx.keepalived.epel-r ...

  9. Lvs+Keepalived+Squid+Nginx负载均衡

    前言* 随着互联网IT行业的发展,越来越多的企业开始使用开源软件搭建自己的web架构,主流的LVS也得到了广泛的应用,在保证高可用的同时,用户对网站的体验速度也有了很高的要求,这时候需要我们在我们的架 ...

随机推荐

  1. 软中断和tasklet介绍

    今天看了下tasklet,重点分析了其和软中断的关系,特此记录 关于软中断,在之前的中断文章中已经有所介绍,这里就不多说了,只是说明下,系统中默认支持32种软中断,而实际上系统定义的软中断仅有以下几种 ...

  2. XTU1198:Candy(背包)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/libin56842/article/details/26182519 题目描写叙述 Henry和Le ...

  3. 关于Windows Service的一个编写技巧

    写过Windows Service的朋友都知道服务是不可以直接在vs里面启动调试,我们必须修改Program.cs文件来达到我们调试的目的,等服务调试好了以后还要把代码改回来,显非常的不方便,在这里为 ...

  4. Django:学习笔记(6)——模型

    Django:学习笔记(6)——模型 快速上手 模型到底是什么呢?我们可以想,如果一张数据表的各个字段可以自动映射到一个类的各个属性,则每条记录对应这个类的一个对象.那我们通过类方法来操作对象(即表记 ...

  5. ionic简介

    CordovaCordova是贡献给Apache后的开源项目,是从PhoneGap中抽出的核心代码,是驱动PhoneGap的核心引擎.提供了一组设备相关的API,通过这组API,移动应用能够以Java ...

  6. org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.my.service.ProductService] for bean with name 'productService' defi报错解决方法

    原 javaweb项目报错org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [XXX] ...

  7. iOS 动态调用方法

      - (void)bugly { dispatch_async(dispatch_get_global_queue(0, 0), ^{ if (NSClassFromString(@"Bu ...

  8. HDU2189 来生一起走

    好久没发博客了,最近遇到以下奇葩错误,不明觉厉,忍不住发一篇 /*母函数,因为要求的是素数,那么先打一个素数表,所有的因子都是素数构成 但是遇到一个奇葩事,当num初值取1,结果就出不来,运行了好久 ...

  9. qq第三方登录网站接口

    网站如何实现QQ登录功能 | 浏览:11029 | 更新:2013-12-05 10:09 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅为你的电脑系统,选一个靠谱师傅! 如果想让网站实现 ...

  10. bat调用exe文件并且传递参数

    bat调用exe文件并且传递参数 bat调用exe,并且传递日期参数,代码: @echo off cd "E:\SublimeWorks\exe" start xyzj_shrjj ...