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 ...
随机推荐
- 20212115 实验二 《python程序设计》实验报告
实验二 计算器设计 #20212115 2021-2022-2 <python程序设计> 实验报告二 课程: 课程:<Python程序设计>班级: 2121姓名: 朱时鸿学号: ...
- 历经70+场面试,我发现了大厂面试的bug,并总结其中心得
想起了学弟在去年秋招时面试了50余家,加上暑期实习面试了20余家,加起来也面试了70余场. 基本把国内有名的互联网公司都面了一遍,不敢说自己的面试经验很丰富,但也是不差的. 这次专门把大厂的面试做了个 ...
- git clone 问题
转自 git clone出现 fatal: unable to access 'https://github.com/...'的解决办法(亲测有效) - 山村码农 - 博客园 (cnblogs.com ...
- atcoder abc 244
atcoder abc 244 D - swap hats 给定两个 R,G,B 的排列 进行刚好 \(10^{18}\) 次操作,每一次选择两个交换 问最后能否相同 刚好 \(10^{18}\) 次 ...
- C语言:如何给全局变量起一个别名?
作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++.嵌入式.Linux. 关注下方公众号,回复[书籍],获取 Linux.嵌入式领域经典书籍:回复[PDF],获取所有原创文章( PDF 格式). ...
- canvas简易画布
今天学习了canvas,利用它做了一个简易版的画板,校验自己所学的知识,分享出来以供大家学习指教.先上效果图. 主要是使用了canvas的stroke和clearReact来实现画板的绘画和橡皮擦功能 ...
- centos 7编译安装mysql 5.7.20
1. 下载mysql 5.7.20源码包 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz 下载boost ...
- sql-自动增长的列
mysql自动增长 如果某一列是数值类型的,使用 auto_increment 可以来完成值得自动增长 方式1:创建表时,添加主键约束,并且完成主键自增长 create table stu( id i ...
- Hdfs存储策略
一.磁盘选择策略 1.1.介绍 在HDFS中,所有的数据都是存在各个DataNode上的.而这些DataNode上的数据都是存放于节点机器上的各个目录中的,而一般每个目录我们会对应到1个独立的盘,以便 ...
- Electron学习(三)之简单交互操作
写在前面 最近一直在做批量测试工具的开发,打包的exe,执行也是一个黑乎乎的dos窗口,真的丑死了,总感觉没个界面,体验不好,所以就想尝试写桌面应用程序. 在技术选型时,Java窗体实现使用JavaF ...