设备:

主: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. Python :元组,不可修改的序列

  2. java的并发

    问题: 过程: 正常流程:记录生成:状态=1-->北京:状态 = 3,4,-->定时任务:状态=5--->结束 异常流程:一条待处理的的记录生成以后,马上被定时任务处理,加载到内存, ...

  3. UI布局 自定义布局

    今天学习了UI布局当中的自定义的布局的部分,在开始的时候先动手写了一个跟随手指移动的小兔子的实例,初步的了解了布局管理器的概念之后开始正式进行布局管理器,其中包括相对布局,线性布局,帧布局,表格布局, ...

  4. CRC碰撞

    循环冗余效验(Cyclic Redundancy Check, CRC) 是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误. ...

  5. C++-hihoCode-1105/1109-[STL][堆][prime]

    #include <set> #include <map> #include <cmath> #include <queue> #include < ...

  6. HBase 中 Memstore-Local Allocation Buffer

    在0.90 版本后的 HBase,引入了一个高级机制用于缓解堆内存碎片的问题.此内存碎片问题的产生的主要原因是由于 memstore 上的扰动(频繁的分配与释放内存空间)导致.对应解决此问题的机制为M ...

  7. access denied (2)

    除了https://www.cnblogs.com/bneglect/p/11558593.html  这里提到的以外,今天再记录一个新的原因造成这种情况的解决方法.path_info 这个算是路由模 ...

  8. Educational Codeforces Round 82 (Rated for Div. 2)D(模拟)

    从低位到高位枚举,当前位没有就去高位找到有的将其一步步拆分,当前位多余的合并到更高一位 #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h&g ...

  9. [AGC027A]Candy Distribution Again

    Description AGC027A 你有一些糖果,你要把这些糖果一个不剩分给一些熊孩子,但是这帮熊孩子只要特定数目的糖果,否则就会不开心,求最多的开心人数. Solution 如果\(\sum a ...

  10. win10 解决.net framework 3.5 安装报错 0x80240438

    打开注册表:cmd+r 输入regedit,确定:找到路径HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU ...