基础
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的负载均衡策略
一、轮询
每一个请求按时间顺序逐一分配到后端服务器,若是后端服务器down掉,会自动剔除
能够在上面加上权重,用于后端服务器性能不均匀的状况
二、ip_hash
根据用户请求ip来计算服务器地址,使得同一个ip的全部请求都落在同一个服务器上,能够解决session问题
三、fair
按后端服务器响应时间来分配请求,响应时间短的优先分配
四、url_hash
按url的Hash结果来分配请求,使得相同的url老是落在同一个服务器上,使用于后端服务器为缓存的状况