③新建检测脚本(chmod 775 check_nginx.sh):
#!/bin/bash #检测nginx是否启动了 A=`ps -C nginx --no-header |wc -l`if [ $A -eq 0 ];then#如果nginx没有启动就启动nginxsystemctl start nginx#重启nginxif [ `ps -C nginx --no-header |wc -l` -eq 0 ];then#nginx重启失败,则停掉keepalived服务,进行VIP转移killall keepalivedfi fi
④启动 Nginx 和 Keepalived(systemctl start keepalived.service)
⑤模拟 Nginx 故障(关闭主服务器 Nginx),验证,仍可以通过配置的虚拟 IP 访问,OK 。
Nginx 原理与优化参数配置
Nginx 默认采用多进程工作方式,Nginx 启动后,会运行一个 Master 进程和多个 Worker 进程 。
其中 Master 充当整个进程组与用户的交互接口,同时对进程进行监护,管理 Worker 进程来实现重启服务、平滑升级、更换日志文件、配置文件实时生效等功能 。
Worker 用来处理基本的网络事件,Worker 之间是平等的,他们共同竞争来处理来自客户端的请求 。
master-workers 的机制的好处:
- 可以使用 nginx-s reload 热部署 。
- 每个 Worker 是独立的进程,不需要加锁,省掉了锁带来的开销 。采用独立的进程,可以让互相之间不会影响,一个进程退出后,其他进程还在工作,服务不会中断,Master 进程则很快启动新的 Worker 进程 。
每个 Worker 的线程可以把一个 CPU 的性能发挥到极致 。所以 Worker 数和服务器的 CPU 数相等是最为适宜的 。设少了会浪费 CPU,设多了会造成 CPU 频繁切换上下文带来的损耗 。
#设置 worker 数量 。worker_processes 4#work 绑定 cpu(4 work 绑定 4cpu) 。worker_cpu_affinity 0001 0010 0100 1000#work 绑定 cpu (4 work 绑定 8cpu 中的 4 个)。worker_cpu_affinity 0000001 00000010 00000100 00001000
连接数 worker_connection:这个值是表示每个 Worker 进程所能建立连接的最大值 。所以,一个 Nginx 能建立的最大连接数,应该是 worker_connections*worker_processes 。
当然,这里说的是最大连接数,对于 HTTP 请 求 本 地 资 源 来 说 , 能 够 支 持 的 最 大 并 发 数 量 是 worker_connections*worker_processes,如果是支持 http1.1 的浏览器每次访问要占两个连接 。
所以普通的静态访问最大并发数是:worker_connections*worker_processes /2 。
而如果是 HTTP 作为反向代理来说,最大并发数量应该是 worker_connections*worker_processes/4 。
因为作为反向代理服务器,每个并发会建立与客户端的连接和与后端服务的连接,会占用两个连接 。
Nginx 请求处理流程如下图:
Nginx 模块开发
由于 Nginx 的模块化特性,所以可以支持模块配置,也可以自定义模块,Nginx 的模块开发,程序员目前还不需要太深入 。
Nginx 模块分类如下图:
Nginx配置选项,解压 Nginx 后的配置操作示例:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-pcre--with-http_ssl_module
Nginx 面试题①Nginx 功能,你们项目中用到的 Nginx?
- 反向代理服务器
- 实现负载均衡
- 做静态资源服务器
- 作为 HTTP Server
启动nginx./sbin/nginx 停止nginx./sbin/nginx -s stop./sbin/nginx -s quit 重载配置./sbin/nginx -s reload(平滑重启) service nginx reload 重载指定配置文件./sbin/nginx -c/usr/local/nginx/conf/nginx.conf 查看nginx版本./sbin/nginx -v 检查配置文件是否正确./sbin/nginx -t 显示帮助信息./sbin/nginx-h
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 小编教你360软件管家设置安装在指定盘符文件夹的操作教程
- 怎么解决Win10专业版软件安装好桌面没有图标?
- 装修用的白板怎么安装
- 装修门是怎么装的
- Win7安装软件时提示“此程序被组策略阻止”怎么解决?
- 虚拟机vmware怎么安装Win11系统
- 卫生间装修如何安装马桶 如何安装马桶
- 我来分享无线鼠标驱动安装成功还是无法使用怎么办。
- 平板太阳能的安装方法 怎样安装太阳能板
- 苹果助手一键安装 苹果手机助手苹果版