安装ssl证书步骤 ssl加速功能( 七 )

③新建检测脚本(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?Nginx 同 Redis 类似都采用了 IO 多路复用机制,每个 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 常用命令有哪些?
启动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

推荐阅读