介绍:
Nginx是高性能服务器,可以实现静态资源热部署,反向代理服务器,负载均衡,及可以做电子邮件的代理服务器
Nginx高性能得益于,它的事件处理机制,采用异步非阻塞时间处理机制:运用了epoll模型,提供队列,排队处理事件
epoll模型:
Nginx作用:
反向代理,将多态服务器代理成一台,负责分发所有请求
负载均衡,多个请求均匀的分配到多个服务器,减轻各个服务器压力,提高整体吞吐量
动静分离,静态文件可以缓存在Nginx服务器,提高访问速度
Nginx的优势:
1. 高并发连接,(5-10万并发量,实际可以支持2-4万)
2. 内存消耗少
3. 成本低
4. 配置文件简单
5. 支持Rewrite重写
6. 节省带宽(单位时间内传输的数据量)
8. 稳定性高
9. 支持热部署
反向代理:
反向代理指的是,以代理服务器来接收网络上的连接请求,然后发给内网上的各个服务器,得到响应返回客户,此时,代理服务器对外就表现为一个反向代理服务器,总之被代理的对象是服务器
正向代理:
正向代理指的是,一个位于客户端和目标服务器之间的服务器,为了从目标服务器得到内容响应,客户端向代理发送请求和目标(目标服务器地址),代理服务器请求目标服务器得到响应,返回客户端,只有客户端才可以使用正向代理,总之被代理的对象是客户端
负载均衡:
负载均衡指的是,代理服务器将请求以各种负载均衡策略,进行分发给各个被代理的内网服务器,主要解决网络拥堵问题,提高服务器响应速度,增加吞吐量,达到更好的访问质量,减少高并发时后台服务器压力.
Nginx执行代理的流程:
1. Nginx启动,解析配置文件得到要代理的服务的ip和端口,
2. Nginx中的master进程初始化被监控的socket,然后进行listen,fork出多个子进程,子进程竞争accept接收新连接,初始化完成
3. 客户端向Nginx发请求,三次握手建立连接,
4. 某个子进程accept接收连接请求成功,创建Nginx对此连接的封装(ngx_connection_t结构体)
5. 处理请求返回响应,调用对应的处理模块,如:http模块与客户端进行数据交互
6. Nginx或客户端断开连接