关于nginx

Posted SheaChen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于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总是落在同一个服务器上,使用于后端服务器为缓存的情况

以上是关于关于nginx的主要内容,如果未能解决你的问题,请参考以下文章

python分析apache和nginx日志文件输出访客ip列表的代码

关于片段生命周期

关于js----------------分享前端开发常用代码片段

关于在各浏览器中插入音频文件的html代码片段

nginx.conf 忽略了 nginx-ingress 配置映射片段

springcloud报错-------关于 hystrix 的异常 FallbackDefinitionException:fallback method wasn't found(代码片段