Nginx基础介绍
nginx基本概念
nginx是一个反向代理服务器,特点是占用内存少,并发能力强,在同类的网页服务器中表现较好。
nginx专门为性能优化而开发,性能是其最重要的考量,有报告表能支持高达50000并发连接数。
nginx功能
【1】反向代理
正向代理:由客户端向代理指定它要访问哪个原始的服务器,然后又代理将请求转发给对应的服务器。向vpn就是正向代理,客户端访问不了外网。
反向代理:客户端指访问代理服务器,它并不知道它访问的原始服务器是谁,有代理服务器根据配置规则转发给相应的原始服务器。反向代理访问的实际是一个虚拟的ip,不是最终实际的ip地址。
【2】负载均衡
单个web应用服务器不能承受日益增长的并发请求量,因此我们需要不断的扩张web应用服务器来支持更高的并发请求量。需要均匀的将请求分配到各个应用服务器上就是负载均衡,常用的策略有轮询策略。
nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦,你可以参照所有的负载均衡算法,给他一一找出来做下实现。
Ip hash算法,对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
【3】动静分离
为了加快网站的解析速度,将动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。将静态文件放在一个单独的web服务器上。
nginx配置文件介绍
全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
server块:配置虚拟主机的相关参数,一个http中可以有多个server。
location块:配置请求的路由,以及各种页面的处理情况。