设备:

主:192.168.200.122

从:192.168.200.124

安装:两台都分别安装nginx以及keepalived

两台机步骤一致一主一从

安装nginx的依赖包

[root@localhost ~]#yum install gcc gcc-c++ make pcre-devel zlib-devel -y

[root@localhost ~]#useradd -M -s /sbin/nologin nginx

[root@localhost ~]#tail -l /etc/passwd;tail -l /etc/group

[root@localhost ~]#rz                                 #导入nginx源码包      

[root@localhost ~]# ls
anaconda-ks.cfg    nginx-1.15.9.tar.gz     original-ks.cfg     模板    图片    下载     桌面
initial-setup-ks.cfg             公共                   视频      文档       音乐

[root@localhost ~]# tar xf nginx-1.15.9.tar.gz -C /usr/src

[root@localhost ~]# cd /usr/src/nginx-1.15.9

[root@localhost ~]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install

[root@localhost ~]# ls /usr/local/sbin

做软连接方便查找nginx位置

[root@localhost ~]# ln -s /usr/local/bin/nginx /usr/local/sbin

[root@localhost ~]# ll /usr/local/sbin

lrwxrwxrwx. 1 root root 27 10月 21 10:50 /usr/local/sbin/nginx -> /usr/local/nginx/sbin/nginx

[root@localhost ~]# cd /usr/local/nginx/conf

[root@localhost conf]# vim nginx.conf

user  nginx nginx;
worker_processes ; #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 ;
} 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" '
'"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on;
#tcp_nopush on; #keepalive_timeout ;
keepalive_timeout ; #gzip on; server {
listen ;
server_name localhost; charset utf-; access_log logs/host.access.log main; location / {
root html;
index index.html index.htm;
} #error_page /.html; # redirect server error pages to the static page /50x.html
#
error_page /50x.html;
location = /50x.html {
root html;
} } }

[root@localhost conf]#cd ../

[root@localhost nginx]#cd html

<p><em>Thank you for using nginx 192.168.200.122</em></p>                #从写192.168.200.124

[root@localhost conf]#nginx -t

[root@localhost conf]#nginx

[root@localhost conf]#killall -HUP nginx

安装keepalived

[root@localhost ~]#yum install keepalived -y

编写nginx脚本用以承载keepalived的依赖

[root@localhost ~]# vim nginx.sh

#!/bin/bash

counter=$(ps -C nginx --no-heading | wc -l)
if [ '${counter}' = '' ];then
/usr/local/nginx/sbin/nginx
sleep
counter=$(ps -C nginx --no-heading | wc -l)
if [ '${counter}' = '' ];then
systemctl stop keepalived
fi
fi

[root@localhost ~]#cd /etc/keepalived

[root@localhost ~]#cp keepalived.conf keepalived.conf.bak

[root@localhost ~]#vim keepalived.conf

! Configuration File for keepalived

global_defs {
notification_email {
route_id 192.168.200.122 #主写122、从写124
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval
vrrp_gna_interval
} vrrp_script chk_http_port {
script
'/root/nginx.sh' #启用nginx.sh脚本
insterval 2
weight -5
fall 2
rise 1

}
vrrp_instance VI_1 {
state MASTER #主写MASTER、从写SLAVE
interface ens33
virtual_router_id
priority 100 #主写100、从写99
advert_int
authentication {
auth_type PASS
auth_pass
} track_script {
check_nginx
}
virtual_ipaddress {
192.168.200.254
}
}

[root@localhost ~]#service keepalived start

关闭防火墙

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0

[root@localhost ~]#ip a

: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu  qdisc pfifo_fast state UP group default qlen
link/ether :0c::f8:6e: brd ff:ff:ff:ff:ff:ff
inet 192.168.200.122/ brd 192.168.200.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.200.254/ scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fef8:6e73/ scope link
valid_lft forever preferred_lft forever

测试1:

条件一:当两台机的nginx、keepalived都开启时

主:192.168.200.122

[root@locahost ~]#ip a

: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu  qdisc pfifo_fast state UP group default qlen
link/ether :0c::3e::0e brd ff:ff:ff:ff:ff:ff
inet 192.168.200.122/ brd 192.168.200.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.200.254/ scope global ens33
valid_lft forever preferred_lft forever

从:192.168.200.124

[root@locathost ~]#ip a

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:f8:6e:73 brd ff:ff:ff:ff:ff:ff
inet 192.168.200.122/24 brd 192.168.200.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fef8:6e73/64 scope link
valid_lft forever preferred_lft forever

测试2:

条件1:当关闭主的keepalived以及nginx服务时,IP192.168.200.254会不会漂移到从机上

先关闭keepalived再关闭nginx服务

[root@localhost ~]# service keepalived stop

[root@localhost ~]# nginx -s quit

主:192.168.200.122

[root@locahost ~]#ip a

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:3e:05:0e brd ff:ff:ff:ff:ff:ff
inet 192.168.200.122/24 brd 192.168.200.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever

从:192.168.200.124

[root@locathost ~]#ip a

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:3e:05:0e brd ff:ff:ff:ff:ff:ff
inet 192.168.200.124/24 brd 192.168.200.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.200.254/32 scope global ens33
valid_lft forever preferred_lft forever

nginx+keepalived实现主从高可用的更多相关文章

  1. Nginx+Keepalived负载均衡高可用

    Nginx+Keepalived负载均衡高可用方案: Nginx 使用平台:unix.linux.windows. 功能: A.www web服务  http 80 b.负载均衡(方向代理proxy) ...

  2. 23.Nginx+keepalived负载均衡高可用

    Nginx+keepalived负载均衡高可用 结构图 环境: 主 服务器:192.168.239.10 备 服务器:192.168.239.20 Web 服务器1:192.168.239.40 We ...

  3. Nginx系列篇三:linux中Nginx+keepalived做一个高可用的主从配置

    建议:先阅读搭建Nginx负载均衡之后再看此篇 备注: Nginx+keepalived的高可用有两种方式 一.主从配置 二.双主热备配置[下一篇] 准备: 标配四台服务器 Master:192.16 ...

  4. Nginx + Keepalived实现应用高可用负载均衡功能

    说明:此处仅介绍 Keepalived 实现nginx负载均衡器的高可用,关于nginx介绍和负载均衡实现可查看我的另两篇博文 Nginx负载均衡 和 Nginx配置了解 应用背景:实现高可用,避免单 ...

  5. Docker+Nginx+Keepalived实现架构高可用

    一.背景 通过keepalived实现nginx高可用,由于在家不想弄多台主机来搞,所以将运行环境用docker封装来模拟跨主机 docker基础镜像:centos 说之前,简单介绍一下: Keepa ...

  6. 【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群

    额.博客名字有点长.. . 前言 最终到这篇文章了,心情是有点激动的. 由于这篇文章会集中曾经博客讲到的全部Nginx功能点.包含主要的负载均衡,还有动静分离技术再加上这篇文章的重点.通过Keepal ...

  7. nginx+keepalived双主高可用负载均衡

    实验环境及软件版本:CentOS版本: 6.6(2.6.32.-504.el6.x86_64)nginx版本: nginx-1.6.3keepalived版本:keepalived-1.2.7 主LB ...

  8. Nginx+Keepalived 主备高可用 安装与配置

    环境说明:操作系统:CentOS6.7 x86_64Nginx版本:nginx-1.9.7Keepalived版本:keepalived-1.2.24 主nginx + Keepalived :10. ...

  9. nginx+keepalived+consul 实现高可用集群

    继 负载均衡 之 nginx+consul+consul template,我这次将使用2台虚拟机,来做一个简单的双机负载均衡试验. 试验目标: 1. 当参加负载均衡的子节点服务,有任何其中一个或多个 ...

随机推荐

  1. 第四篇,JavaScript面试题汇总

    JavaScript是一种属于网络的脚本语言,已经被广泛用于web实用开发,常用来为网页添加各种各样的动态功能,为用户提供更流畅美观的浏览效果.通常JavaScript脚本是通过嵌入在HTML中来实现 ...

  2. html5的placeholder属性(IE如何兼容placeholder属性)

    界面UI推荐 jquery html5 实现placeholder兼容password  IE6 html5的placeholder属性(IE如何兼容placeholder属性) 2013-01-05 ...

  3. JS点击显示隐藏内容

    JS点击显示隐藏密码 思路:获取元素,判断点击,如果DIV显示就隐藏,如果DIV隐藏就显示出来. 1 if(DIV是显示的){ 2 div.style.display='none'; 3 } 4 el ...

  4. js -- 车牌号对应的归属地js文件

    /*车牌号对应的归属地*/ let cardCallerloc = new Map(); // 北京市(京) cardCallerloc.set("京A", "北京市&q ...

  5. java基础之 变量

    变量是一个内存位置的名称. 1.成员变量(实例变量,属性) 成员变量就是类中的属性,当创建对象的时候,每个对象都有一份属性.一个对象中的属性就是成员变量. 2.本地变量(局部变量) 在方法内声明的变量 ...

  6. [CERC2014] Outer space invaders

    题目链接 题意 你受到一群外星人的攻击,第 $i$ 个外星人会在 $ai$ 时间出现,与你的距离为 $di$,且必须在 $bi$ 时间前消灭.你有一个区域冲击波器,每次攻击可以设定一个功率 $R$,这 ...

  7. kali2018.4 下载地址

    https://www.linuxidc.com/Linux/2018-10/155088.htm

  8. 常用统计分析python包开源学习代码 numpy pandas matplotlib

    常用统计分析python包开源学习代码 numpy pandas matplotlib 待办 https://github.com/zmzhouXJTU/Python-Data-Analysis

  9. SSH通道 Xshell

    SSH是每一台Linux电脑的标准配置. SSH是一种网络协议,用于计算机之间的加密登录(安全的). 1.  登录远程主机    $ ssh user@host    2.  SSH的默认端口是22, ...

  10. How To Use These LED Garden Lights

    Are you considering the lighting options for the outdoor garden? Depending on how you use it, LED ga ...