通过shell脚本优化Keepalived+Nginx高可用集群
问题描述Keepalived不容易挂掉,容易挂掉的是Nginx,如果Nginx挂掉了依然可以通过Keepalived访问机器,但是访问不到Nginx服务。所以这里需要借助Keepalived的vrrp_script配置来调用自定义shell脚本,来检测Nginx是否挂掉,如果Nginx挂掉了,就启动它,打开失败就关闭Keepalived启用备用机
实现过程编写shell脚本在 / 目录下新建shell目录存放shell脚本文件
1mkdir /shell
新建 .sh文件,命名为:nginx_check.sh,内容如下:(该脚本的功能为通过 ps -ef|grep -w nginx|grep -v grep|wc -l查看当前有多少个Nginx服务在运行,如果返回0说明Nginx服务没有运行,就启动Nginx,过2秒再查看是否启动成功,启动失败就停止Keepalived启用备用机)
1234567891011121314151617181920#!/bin/bashecho 'check Nginx'count_nginx=`ps -ef|grep -w ngin ...
CentOS7使用Crontab定时任务
常用命令启动
1systemctl start crond
停止
1systemctl stop crond
重启
1systemctl restart crond
查看状态
1systemctl status crond
赋予权限Crontab定时任务是没有权限执行shell脚本的,要先赋予脚本777权限
1chmod 777 脚本名称(不在当前目录要加上路径)
执行方式脚本放在目录把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次
编写crontab命令进入当前用户的工作表编辑,是常见的vim界面,每行是一条命令
1crontab -e
crontab的命令构成为 时间+动作,下面的* * * * *是时间,shell脚本路径为动作
时间有分、时、日、月、周五种,操作符有:
***** :取值范围内的所有数字
/ :每过多少个数字
- :从X到Z
, :散列数字
一些实例:
1234567891011121314151617181920 ...
PotPlayer安装皮肤
下载皮肤下载地址:PotPlayer皮肤 - PotPlayer中文网 (potplayercn.com)
安装皮肤下载后解压解压时选择提取到xxxxx文件夹,xxxxx就是下载好的压缩包名称
找到皮肤文件夹打开PotPlayer后,在界面上右键点击,选择皮肤–>>皮肤设置
打开皮肤文件夹,找到PotPlayer的皮肤安装目录
使用皮肤然后把上面解压后的文件夹复制到皮肤文件夹中,再重启PotPlayer,在界面上右键点击,选择皮肤再选择对应的皮肤即可
Keepalived+Nginx实现高可用集群配置
克隆虚拟机克隆当前虚拟机,查看克隆步骤:VMware克隆虚拟机 ,当前虚拟机为主机,克隆的虚拟机为备用机(主机崩了才会启用备用机)
配置主机配置虚拟机hosts文件路径为:/etc/hosts,在底部添加:
1127.0.0.1 KEEPALIVED_NGINX_MASTER
Keepalived配置介绍1234567891011121314151617181920212223242526272829303132333435# 全局配置global_defs { notification_email { # keepalived服务宕机异常出现的时候,发送通知邮件 可以是多个 acassen@firewall.loc # 收件人邮箱1 failover@firewall.loc # 收件人邮箱2 sysadmin@firewall.loc # 收件人邮箱3 } notification_email_from Alexandre.Cassen@firewall.loc #邮件发件人 smtp_server ...
VMware克隆虚拟机
关闭虚拟机如果要克隆的虚拟机正在运行,就先把它停掉,正在运行的虚拟机是无法克隆的
开始克隆
选中要克隆的虚拟机右键点击,选择 管理–>>克隆
克隆类型选择完整克隆
填写虚拟机名称以及存储路径
CentOS7安装Keepalived
安装1yum install keepalived
常用命令启动
1systemctl start keepalived.service
关闭
1systemctl stop keepalived.service
重启
1systemctl restart keepalived.service
查看日志
1tail -f /var/log/messages
PS.配置文件在/etc/keepalived目录下,名称为:keepalived.conf
日志文件在/var/log目录下,名称为:messages
CentOS7安装Nginx
添加Nginx源CentOS7默认是没有Nginx源的,Nginx官方提供了添加源的命令:
1rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安装Nginx1yum install -y nginx
启动Nginx1systemctl start nginx.service
设置开机自动运行1systemctl enable nginx.service
关闭防火墙关闭
1systemctl stop firewalld
查看状态
1systemctl status firewalld
测试浏览器地址栏输入虚拟机IP,看到 Welcome to nginx! 就说明安装成功
卸载nginx1yum remove nginx
PS.CentOS7关闭Nginx命令,nginx.service可简写成nginx
1systemctl stop nginx.service
CentOS7启动Nginx命令
1systemctl ...
Nginx实现虚拟主机
简介虚拟主机概念比较广,可以是虚拟硬件来实现多网站,多应用运行,也可以是通过一些代理服务器来实现单机多网站运行,例如:我们一个服务器上可以部署三个网站,然后通过三个不同的域名访问
Nginx可以通过反向代理来实现虚拟主机
实现过程查看博客:Nginx 实现反向代理 | LeDao 的博客 (zoutl.cn)
Nginx实现动静分离
简介动静分离是指在web服务器架构中,将静态页面与动态页面或者静态内容接口和动态内容接口分开不同系统访问的架构设计方法,进而提升整个服务访问性能和可维护性
我们可以把静态html页面,css样式,js文件,以及图片文件这些静态放Nginx服务器中,然后把动态请求显示的文件放类似Tomcat这样的容器服务器
这样方便维护,也可以提高系统性能
前提云服务器安装好Nginx,拥有自己的域名(解析一个二级域名来用于访问静态资源)
实现过程新建静态资源在/home/nginx目录下放静态资源
index.html,放在/home/nginx目录下
12345678910111213<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="http://static.z ...
Nginx负载均衡backup和down配置
概述这两个配置很多时候用于运维,维护某个机器的时候用
backup其他非backup机器挂掉后,才会请求backup机器
实例:
1234upstream www.123.com{ server 172.17.0.2:8080; server 172.17.0.3:9090 backup;}
down配置down的服务器不参与负载均衡,
1234upstream www.123.com{ server 172.17.0.2:8080; server 172.17.0.3:9090 down;}