Nginx 集群部署(Keepalived)
# Nginx集群部署
# 当我们的用户同时访问量达到一定量的时候,一台服务器是不够用的
# 这个时候我们需要解决这个问题肯定是要添加新的服务器去处理用户访问
# 多台服务器处理用户访问就需要我们集群部署
# 通过Nginx反向代理是实现服务器集群部署的一种方法 # 一台服务器不够用的时候我们有很多方案可以去优化它
# 方案一:将不同的数据分布到不同的服务器上处理,通过反向代理将他们整合起来
# 方案二:多台服务器去处理同样的业务,通过反向代理负载均衡去控制用户访问由哪个服务器去处理,这样哪怕用户再多,只要一直增加服务器就能保证用户访问速度在一定范围。
# 方案三:将动态数据和静态页面分布到不同的服务器去处理。
# 不管哪种方案,你部署的时候一定要考虑部分服务器当机当机情况。 # Nginx高可用解决方案
# 也就是当Nginx代理服务器当机了,我们怎么去处理该问题
# Keepalived:Keepalived软件由C编写的,最初是专为LVS负载均衡设计的,Keepalived主要是通过VRRP协议实现高可用功能。
# VRRP介绍:
# VRRP协议是将多台路由器虚拟成一台路由器,它会有自己的ip,当客户访问虚拟路由器IP的时候,再由虚拟路由器分发到一台路由器去处理,
# 多台路由器具体由路由器设置的级别来决定用哪台路由器去处理,级别最高的为master主路由器,其他路由器都为backup备份路由器。
# 虚拟路由器只会将用户访问分发给master路由器去处理。
# 当master路由器当机后,多个backup路由器级别最高的那个成为master路由器。
# master路由器和backup路由器之间的关系:master路由器采用心跳机制发送状态码给Backup路由器以确保Backup路由器知道master路由器在正常运行;心跳机制停止后,Backup路由器就会竞争成为master路由器。 # Keepalived的安装
# 1.下载Keepalived源码包,官网地址:https://keepalived.org/
# 2.将压缩包上传到服务器
# 3.创建Keepalived目录
# 4.解压Keepalived-2.0.20.tar.gz
tar -zxf Keepalived-2.0.20.tar.gz -c Keepalived/
# 5.对keepalived进行配置,编译和安装。sysconf配置文件存放路劲。prefix安装路劲。
cd keepalived/keepalived-2.0.20
./configure --sysconf=/etc --prefix=/usr/local
make && make install
# 安装完成后会生成/etc/keepalived/keepalived.conf配置文件
# 和/usr/local/sbin/leepalived系统脚本文件用来启动和关闭keepalived
# Keepalived.conf配置文件介绍
# Keepalived配置分为三部分,第一部分是global全局配置、第二部分是VRRP相关配置、第三部分是LVS相关配置
# 现在主要是使用keepalived实现高可用部署,没有用到LVS。
# global全局部分
global_defs {
# 通知邮件,当keepalived发生切换时需要发送email给具体邮箱地址
notification_email {
abc@abc.com
77325496***@qq.com
}
# 设置发件人的邮箱信息
notification_email_from zzz@abc.com
# 指定smtp服务地址
smtp_server 192.168.1.1
# 指定smpt服务链接超时时间
smtp_connect_timeout 30
# 运行keepalived服务器的一个标识(填写主机名就行),可以作用发送邮件的主题信息
router_id LVS_DEVEL # 检查收到的VRRP通告中的所有地址可能会比较耗时,设置此命令的意思时,如果通告与接收的上一个通告来自相同的master路由器,则不执行检查(跳过检查)。默认不跳过检查。
vrrp_skip_check_adv_addr
# 严格遵守VRRP协议
vrrp_strict
# 在一个接口发送的两个免费ARP之间的延迟。可以精确到毫秒级。默认是0
vrrp_garp_interval 0
# 在一个网卡上每组na消息之间的延迟时间,默认为0
vrrp_gna_interval 0
} # vrrp实例部分VI_1是实例的名称
vrrp_instance VI_1{
# 设置当前实例时master还是backup路由器
state MASTER
# 用哪个网卡来发送消息包
interface eth0
# VI_1实例的唯一标识值 0-255之间任意值
virtual_router_id 51
# 优先级,数值越高级别越高
priority 100
# 定时向外发送arrp通告信息,主要用于心跳机制。1秒
advert_int 1 # 认证相关
authentication {
# 认证类型
auth_type PASS
# 认证密码
auth_pass 1111
}
# 配置虚拟IP地址,可以配置多个供用户访问
virtual_ipaddress {
192.168.1.1
192.168.1.2
}
} # 如何配置Keepalived当机自动重启
# 1.在Keepalived.conf全局位置增加配置
vrrp_script 脚本名称
{
script "脚本位置"
interval 3 # 执行间隔
weight -20 # 动态调整vrrp_instance的优先级。master路由的优先级调低了也是优先master路由。所以要想master路由也参与该机制,就别设置master路由,只要将所有的路由都设置为backup路由就行。
}
# 2.编写脚本
ck_nginx.sh
#!/bin/bash
num =`ps -C nginx --no-header | wc -l`
if [ $num -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header | wc -l` -eq 0 ]; then
killall keepalived
fi
fi
# ps指令中的参数
# -C(command):指定命令的所有进程
# --no-header 排除标题 # 例子:
# 这里是加载声明脚本
vrrp_script ck_nginx {
script "/etc/keepalived/ck_nginx.sh"
interval 2
weight -20
}
vrrp_instance VI_1{
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1 authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.1
192.168.1.2
}
track_script{
# 这里可以指定多个脚本
ck_nginx
ck_nginx
}
} # 配置两个Keepalived
# virtual_router_id、authentication、virtual_ipaddress要一样
# 启动服务
./keepalived
Nginx 集群部署(Keepalived)的更多相关文章
- NetCore在Centos7上部署和Nginx集群部署访问
NetCore在Linux上部署 工具:WMWare虚拟机,Wmware12,CentOS7ISO镜像,VS2017 1.安装虚拟机,过程略,网上一搜一大把 2.用VS2017建一个NetCore的W ...
- Nginx+Tomcat集群部署
为了获取更好的性能,我们常常需要将tomcat进行集群部署.下文通过nginx转发实现tomcat集群,并通过nginx-upstream-jvm-route插件保证session的粘滞. 应用场景环 ...
- 利用nginx进行集群部署
现在一般的服务器都是集群的情况了,所以准备搞集群部署下. nginx用的是第三方的openrestynginx.首先安装nginx,我的系统是UBuntu,安装方法也很简单,见官网. 自己采用了默认安 ...
- Nginx+Tomcat+Memcached 实现集群部署时Session共享
Nginx+Tomcat+Memcached 实现集群部署时Session共享 一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Sessi ...
- 基于k8s集群部署prometheus监控ingress nginx
目录 基于k8s集群部署prometheus监控ingress nginx 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署pro ...
- Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived
文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...
- 庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群
庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群 一.简介 前面的两篇文章,我们已经介绍了Net Core项目基于Docker容器部署在Linux服 ...
- Haproxy配合Nginx搭建Web集群部署
Haproxy配合Nginx搭建Web集群部署实验 1.Haproxy介绍 2.Haproxy搭建 Web 群集 1.Haproxy介绍: a)常见的Web集群调度器: 目前常见的Web集群调度器分为 ...
- 使用Tomcat-redis-session-manager来实现Tomcat集群部署中的Session共享
一.工作中因为要使用到Tomcat集群部署,此时就涉及到了Session共享问题,主要有三种解决方案: 1.使用数据库来存储Session 2.使用Cookie来存储Session 3.使用Redis ...
随机推荐
- Java 统计新客户
上周做了一个订单数据统计的任务,统计的是订单的新客户数量,本文做一个解题过程的记录和整理. 新客户的定义 新客户指的是选取时间段有订单,时间段之前没有订单. 比如下面的订单数据: 时间段 2月1日之前 ...
- CF1682D Circular Spanning Tree
题意: 构造题,节点1~n顺时针排列成圆形,告诉你每个点度数奇偶性,让你构造一棵树,树边不相交. 思路: 因为每条边给总度数贡献2,因此如果度数为1的点有奇数个,直接输出no.显然0个度数为1的,也输 ...
- 【原创】项目五w1r3s.v1.0
实战记录 1.nmap信息枚举 1)C段扫描 nmap -sP 192.168.186.0/24 2)扫描全端口信息 nmap -p- 192.168.186.143 3)扫描版本信息 nmap -p ...
- k8s中label和label selector的基本概念及使用方法
1.概述 在k8s中,有一个非常核心的概念,就是label(标签),以及对label的使用,label selector. 本文档中,我们就来看看:1.什么是标签,2.如何定义标签,3.什么是标签选择 ...
- django框架10
内容概要 ajax结合sweetalert forms组件钩子函数 forms组件字段参数 forms组件字段类型 forms组件源码分析 cookie与session简介 django操作cooki ...
- Python3 filter()函数和map()函数
filter(function or None,iterable) 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换. 该接收两个参数,第 ...
- 2021.05.29【NOIP提高B组】模拟 总结
T1 题意:给你一个图,可以不花代价经过 \(K\) 条边,问从起点到终点的最短路 考试的想法:设 \(dis_{i,j}\) 表示从起点免费了 \(j\) 条边到 \(i\) 的最短路 然后直接跑 ...
- Hyper-v安装虚拟机,提示the image's hash and certificate are not allowed错误的解决方法
本文迁移自Panda666原博客,原发布时间:2021年3月29日. Hyper-v安装虚拟机,提示the image's hash and certificate are not allowed错误 ...
- python PIL 图片素描化
from PIL import Image import numpy as np a = np.asarray(Image.open("D://7.jpg").convert('L ...
- BUUCTF-[BJDCTF2020]认真你就输了
[BJDCTF2020]认真你就输了 下载通过16进制查看发现是压缩包,直接就binwalk分离查看. 分离直接得到几个文件,不过好像压缩包里的和外面的文件是一样的,所以直接翻一下目录 直接就找到了 ...