一、nginx 原理与优化参数配置

?

?
master-workers 的机制的好处
首先,对于每个 worker 进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销,同时在编程以及问题查找时,也会方便很多。其次,采用独立的进程,可以让互相之间不会影响,一个进程退出后,其它进程还在工作,服务不会中断,master 进程则很快启动新的worker 进程。当然,worker 进程的异常退出,肯定是程序有 bug 了,异常退出,会导致当前 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.conf
二、nginx 搭建高可用集群
1、什么是 nginx 高可用

?
1.1 配置
(1)需要两台 nginx 服务器
(2)需要 keddepalived
(3)需要虚拟 ip
1.2、配置高可用的准备工作
(1)需要两台服务器 192.168.17.129 和 192.168.17.131
(2)在两台服务器安装 nginx
(3)在两台服务器安装 keepalived
1.3、在两台服务器安装 keepalived
(1)使用 yum 命令进行安装
yum install keepalived –y

?
(2)安装之后,在 etc 里面生成目录 keepalived,有文件 keepalived.conf
2、Keepalived+Nginx 高可用集群(主从模式)

?
(1)修改/etc/keepalived/keepalivec.conf 配置文件
(1)在所有节点上面进行配置
(2)配置后端 web 服务器(两台一样)
(3)配置 LB 服务器(两台都一样)
(4)在测试机(192.168.1.35)上面添加 host 解析,并测试 lb 集群是否正常。(测试机任意都可以,只要能访问 lb 节点。)
(5)上面步骤成功后,开始搭建 keepalived,在两台 lb 节点上面安装 keepalived(也可以源码编译安装、此处直接使用 yum 安装)
(8)在测试机器上面访问 Keepalived 上面配置的 VIP 192.168.1.110
到此,Keepalived+Nginx 高可用集群就搭建完成了。
3、Keepalived+Nginx 高可用集群(双主模式)

?
说明:还是按照上面的环境继续做实验,只是修改 LB 节点上面的 keepalived 服务的配置文件即可。此时
LB-01 节点即为 Keepalived 的主节点也为备节点,LB-02 节点同样即为 Keepalived 的主节点也为备节点。
LB-01 节点默认的主节点 VIP(192.168.1.110),LB-02 节点默认的主节点 VIP(192.168.1.210)
测试可以发现我们访问 keepalived 中配置的两个 VIP 都可以正常调度等,当我们停止任意一台 keepalived节点,同样还是正常访问;到此,keepalived+nginx 高可用集群(双主模式)就搭建完成了。
Nginx 笔记(四)nginx 原理与优化参数配置 与 nginx 搭建高可用集群
原文:https://www.cnblogs.com/wushaopei/p/12284648.html