Nginx入门

来源:互联网 发布:武汉java工作好找吗 编辑:程序博客网 时间:2024/03/28 19:40
 nginx是一个高性能的http和反向代理的服务器。它在高并发量、吞吐量的网上应用广泛。比如百度、网易、新浪。

一、什么是正向代理和反向代理
正向代理:咱们平时想访问外网资源,可以用翻墙软件,或者在浏览器配置代理。它作用在客户端。我们要访问原始服务器,先向代理发送请求并指定目标,然后代理向原始客户端转交请求并将获得的内容返回给客户端。
反向代理:作用在服务器端,在服务器端收集客户端的请求,然后分发给服务器。客户端不需要任何的配置。相对于客户端来说,反向代理服务器相当于原始服务器,对客户端是透明的。
二、Nginx的结构模型
这里写图片描述

Nginx会以多进程的方式工作,Nginx启动后会有一个master进行和多个worker子进程。master进程主要管理worker进程,接受来自外界的信号,向各个worker进程发送信号。一个事件只能由一个worker进程处理。master是不处理事件的,worker负责处理事件。

三、Nginx的事件处理机制
异步非阻塞:当事件没有准备好时,放到epoll队列里面。如果有事件准备好了,就去处理;如果返回eagain,继续放入epoll里面。从而,只有事件准备好了,就去处理,只有当所有的事件都没有准备好时,才在epoll里面等着。这样就可以处理大量的并发了。当然,这里的并发请求,是指未处理完的请求,线程只有一个,所以同时能处理的请求当然只有一个了,只是在请求间进行不断地切换而已,切换也是因为异步事件未准备好,而主动让出的。这里的切换是没有任何代价,你可以理解为循环处理多个准备好的事件,事实上就是这样的。
与多线程相比,这种事件处理方式是有很大的优势的,不需要创建线程,每个请求占用的内存也很少,没有上下文切换,事件处理非常的轻量级。并发数再多也不会导致无谓的资源浪费(上下文切换)。

四、特点
1.跨平台:可以在大多数Unix上编译运行,而且也有windows的移植版本
2.配置异常简单
3.非阻塞、高并发
4.事件驱动:采用epoll模型,支持更大的并发连接

nginx服务器接受用户的请求是异步的,即先将用户的请求全部接受下来,然后再一次性的发送给web服务器,极大的减轻的web服务器的压力。而且,在发送响应的报文时,边接受来自后端web服务器的数据,发送给客户端。另外,nginx服务器还有健康检查机制,如果某台web服务器宕机,能给它发送服务器状态,那么再处理请求的时候就不发送给这台web服务器。

0 0