nginx配置高可用集群
nginx在运行过程中可能会宕机,所有需要配置nginx集群,解决nginx宕机的问题。
高可用的配置的准备工作
安装keepalived
yum install keepalived -y
使用命令行安装之后,在etc里面会生成一个目录keepalived,由它的配置文件keepalived.conf
高可用的配置
修改keepalived.conf
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc #定义利用什么邮箱发送邮件
smtp_server smtp.163.com #定义邮件服务器信息
smtp_connect_timeout 30 #定义邮件发送超时时间
router_id 192.168.200.131 #(重点参数)局域网keppalived主机身份标识信息(每台唯一)
script_user root #添加运行健康检查脚本的用户
enable_script_security #添加运行健康检查脚本的组
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh" #表示将一个脚本信息赋值给变量check_web
interval 2 #检测脚本执行的间隔
weight -20 #监测失败,则相应的vrrp_instance的优先级会减少20个点
}
vrrp_instance VI_1 {
state MASTER #keepalived角色描述信息,备份服务器上将 MASTER 改为 BACKUP
interface ens33 #将虚拟ip用于那块网卡
virtual_router_id 51 #主、备机的 virtual_router_id 必须相同
priority 100 #主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1 #主服务器组播包发送间隔时间
authentication { # 主备主机之间的认证表示信息
auth_type PASS #采用明文认证机制
auth_pass 1111 #编写明文密码
}
virtual_ipaddress {
192.168.200.199 #设置虚拟ip地址信息,此参数备节点设置和主节点相同
}
track_script {
chk_http_port #调用执行脚本
}
}
添加检查nginx状态的脚本
vim /usr/local/src/nginx_check.sh
脚本内容
#!/bin/bash
# 传入容器名称
containerName=nginx_master
currTime=`date +"%Y-%m-%d %H:%M:%S"`
# 查看进程是否存在
exist=`docker inspect --format '{{.State.Running}}' ${containerName}`
if [ "${exist}" != "true" ]; then
pkill keepalived #杀死所有keepalived服务进程
# 记录
echo "${currTime} docker容器宕机,容器名称:${containerName}" >> /mnt/xvde1/ms_ctynyd/scripts/wbwf_monitor.log
fi
注意:
一定要给这个脚本文件可执行权限(看到变成可执行的颜色),执行命令:chmod u+x /usr/local/src/nginx_check.sh
nginx原理
1、master 和worker
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R8IoyXJk-1638705203406)(nginx知识点.assets/image-20211110164443211.png)]
2、worker如何工作
3、一个 master 和多个 woker 有好处
(1)可以使用 nginx –s reload 热部署,利用 nginx 进行热部署操作
(2)每个 woker 是独立的进程,如果有其中的一个 woker 出现问题,其他 woker 独立的,
继续进行争抢,实现请求过程,不会造成服务中断
4、设置多少个 woker 合适
worker 数和服务器的 cpu 数相等是最为适宜的
5、连接数 worker_connection
第一个:发送请求,占用了 woker 的几个连接数?
答案:2 或者 4 个
第二个:nginx 有一个 master,有四个 woker,每个 woker 支持最大的连接数 1024,支持的
最大并发数是多少?
普通的静态访问最大并发数是: worker_connections * worker_processes /2,
而如果是 HTTP 作 为反向代理来说,最大并发数量应该是 worker_connections *worker_processes/4。
nginx其他文章:
一、nginx 的基本概念
二、nginx 的安装常用命令和配置文件
三、nginx的反向代理配置实例
四、nginx负载均衡配置实例
五、nginx动静分离配置实例
六、nginx配置高可用集群和nginx原理