Nginx介绍

1.介绍

Nginx是一个高性能的HTTP服务器,以及反向代理服务器

 

Nginx 工作原理及安装配置

Nginx 由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个 location block(location 是 Nginx配置中的一个指令,用于 URL 匹配),而在这个 location 中所配置的每个指令将会启动不同的模块去完成相应的工作。

 

基本功能:

静态资源的web服务器,能缓存打开的文件 描述符

http, smtp, pop3协议的反向代理服务器,缓存、负载均衡;

支持FastCGI (fpm)

模块化,非DSO机制,过滤器zip,SSI及图像大小调整;

支持SSL

 

扩展功能:

基于名称和IP的虚拟主机;

支持keepalive

支持平滑升级

定制访问日志 ,支持使用日志缓冲区提高日志存储性能

支持url rewrite

支持路径别名

支持基于IP及用户的访问控制

支持速率限制,支持并发数限制

 

Nginx的基本架构:

一个master进程,生成一个或多个worker

事件驱动: epoll, kqueue, /dev/poll (event ports)

消息通知:select, poll, rt signals

支持sendfile, sendfile64

支持AIO

支持mmap

nginx: 非阻塞、事件驱动、一个master生成一个或多个worker,每个worker响应n个请求;

 

模块分类(结构上)

核心类

HTTP、EVENT,以及MAIL模块。

基础类

HTTP的Access、FastCGI、Proxy,以及Rewrite模块。

第三方类

HTTP的 Upstream Request Hash、Access Key模块,以及Notice模块。

   

模块分类(功能上)

Handlers(处理器):处理请求并输出和修改handlers信息,一般只能有一个。

Filters(过滤器):对Handlers处理过的内容进行修改,最后由Nginx输出,可以有多个。

Proxies(代理类):HTTP Upstream之类,常与后端的服务,如fastcgi交互,实现服务代理和负载均衡功能。

处理请求的过程所经过的模块: –> 处理器 –> 过滤器1 [–> 过滤器2 –>过滤器n] –>

 

优势

作为Web服务器,处理静态文件时索引效率很高

作为代理服务器,实现高效的代理

作为负载均衡服务器,既内部直接支持PHP,也支持代理服务器;同时支持容错和利用算法负载均衡

性能好,采用了Poll模型支持大并发,而且内存占用少

稳定性好,采用分阶段资源分配方式,让CPU和内存占用少

高可用性好,支持热部署,配置修改以及版本更新无需重启服务器

 

 2.Nginx配置文件(/usr/local/nginx/conf/nginx.conf)
   

   配置文件主要由四部分组成:main(全区设置),server(主机配置),upstream(负载均衡服务器设置),和location(URL匹配特定位置设置)。

资料源于网络