2018-10-10
1. nginx架构通过master主进程下的多个worker子进程处理
2. 设置worker子进程的数量和服务器核心数量一致可以有最好的效率
3. 每一个worker子进程都有一个事件池pool,池的大小
4. worker_connections表示这个子进程最多可以建立多少连接,最大并发数=worker数*最大连接数
5. tcp连接时nginx会开启多个子进程竞争,竞争时遵循当某个worker的连接数大于一定比例,则不参与竞争
2018-10-11
1. nginx处理http请求流程:解析请求行->解析请求头->处理请求
2. 请求头的buff默认大小设置client_header_buffer_size,如果超过则会用另一个更大的buff,配置为large_client_header_buffers
3. 如果请求行或请求头超过单个buff最大值会返回414和400错误
4. nginx支持keep-alive长连接,即一次链接中有多次请求,减少建立连接的开销,通过keepalive_timeout配置超时时间
5. 开启keep—alive后,http头中的connect值为Keep-Alive,否则为Close
6. 对于请求量大的网页开启长连接可以减少time-wait的数量
7. nginx支持pipe,类似长连接,与keep-alive不同的是不需要等到上一个请求结束就可以发起下一个请求。
8. nginx支持延时关闭连接,通过lingering_timeout设置,用以等待write buffer数据发送完毕后关闭连接