目录
一、Nginx介绍
1、Nginx简介
①作用:支持七层(应用层)和四层(传输层)反向代理、可做web服务器。
②特性:高可靠性、支持热部署、可扩展性好、高并发高性能、单机部署。
⑤进程:一个主进程master生成多个worker子进程,worker子进程负责处理工作。
2、I/O模型相关概念
①Nginx服务使用异步非阻塞模式:请求不需要排队,会反馈任务的完成结果。
②Apache服务使用同步阻塞模式:请求需要排队,且不会主动返回结果。
③同步/异步:关注的是消息通信机制,即调用者在等待一件事情的处理结果时。被调用者是否提供完成。
④同步:调用者需要主动询问结果。
⑤异步:调用者不需要主动询问结果,被调用者会主动返回结果。
⑥阻塞:系统同时只能处理1个请求,另外的请求需要排队。
⑦非阻塞:系统同时处理多个请求。
3、Nginx事件驱动模型
①select:一个应用程序,代理系统功能处理异步请求,最大连接数是1024个。
它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。
②poll:select加强版取消了1024最大连接数。
poll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的设备状态, 但是它没有最大连接数的限制,原因是它是基于链表来存储的。
③epoll:poll的加强版。
epoll可以理解为event poll,不同于忙轮询和无差别轮询,epoll会把哪个流发生了怎样的I/O事件通知我们。所以我们说epoll实际上是事件驱动(每个事件关联上fd)的,此时我们对这些流的操作都是有意义的。
二、部署Nginx
1、yum部署Nginx
①使用yum部署