关于nginx

基础

nginx是一款轻量级的web服务器/反向代理服务器及电子邮件代理服务器,特点是占用内存少,并发处理能力强,事件驱动

nginx启动后,在unix系统中以daemon的方式在后台运行,后台包括一个master进程和多个worker进程,每个worker进程都是从master fork过来的
master进程用于管理其他的worker进程,worker进程之间互相独立
nginx采用异步非阻塞的方式处理请求,可以同时处理上千万个请求
nginx利用用户传入的超时时间生成一个定时器,放在红黑树中进行维护

nginx启动时,先读取配置文件,获取到需要监听的端口和ip,然后在master进程中初始化这些监控的socket,再fork出worker进程,然后worker进程会监听新的连接请求

nginx在处理请求的时候采用的状态机来解析请求,提高效率

nginx通过ngx_accept_disable变量来控制每个worker进程的连接数,防止某个worker进程处于非常繁忙而其他进程处于空闲状态

nginx的负载均衡策略
	1、轮询
	每个请求按时间顺序逐一分配到后端服务器,如果后端服务器down掉,会自动剔除
	可以在上面加上权重,用于后端服务器性能不均匀的情况
	
	2、ip_hash
	根据用户请求ip来计算服务器地址,使得同一个ip的所有请求都落在同一个服务器上,可以解决session问题
	
	3、fair
	按后端服务器响应时间来分配请求,响应时间短的优先分配
	
	4、url_hash
	按url的Hash结果来分配请求,使得相同的url总是落在同一个服务器上,使用于后端服务器为缓存的情况
原文地址:https://www.cnblogs.com/canmeng-cn/p/9533196.html