标签:nginx介绍
作为一个轻量级的http服务器,nginx与Apache相比有以下优势:
1)在功能上,
它占用很少的系统资源,能支持更多的并发链接,达到更高的访问效率;
2)在功能上,
他是优秀的代理服务器和负载均衡服务器;在安装配置上,安装简单,配置灵活
nginx的模块与工作原理
nginx由内核和模块组成,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block,
nginx的模块从结构上分为核心模块,基础模块和第三方模块,http模块,EVENT模块和mail模块属于核心模块,http access 模块,http fastCGI模块,http proxy模块和http rewrite模块属于基础模块,而http upstream request hash 模块,notice模块和http access key模块属于第三方模块,用户根据自己的需要开发的模块都属于第三方模块。正是有脸这么多的模块支撑,nginx的功能才会如此强大
nginx配置文件的结构
nginx的配置文件是一个纯文本文件,它一般位于nginx安装目录的conf目录下,整个配置文件是以block的形式组织的,每个block一般以一个大括号“{}”来表示,block可以分为几个层次,整个配置文件中main指令位于最高层,在main层下面可以有event,http等层级。而在http层中又包含server层,即server block, server中又可以分为location层,并且一个server block中可以包含多个location block
nginx配置文件主要分为4部分,main(全局部分),server(主机部分),upstream(负载均衡服务器设置)和location(url匹配特定位置的设置)。
main部分设置的指令将影响其他所有设置:
server部分的指令主要用于指定主机和端口:
upstream指令主要用于负载均衡,设置一系列的后端服务器;
location部分用于匹配网页位置,这四者之间的关系如下:
server继承main,location继承server, upstream既不会继承其他设置也不会被继承
upstream是nginx的http upstream模块,这个模块通过一个简单的调度算法来实现客户端ip到后端服务器的负载均衡,
nginx的负载均衡模块目前支持4中调度算法,后两项属于第三方调度算法
轮询 (默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器down了,故障系统会自动剔除,使用壶访问不瘦影响
weight 指定轮询权值,weight值越大,分配到的访问几率越高,主要用于后端每个服务器性能不均的情况下
ip_hash,每个请求按访问ip的hash结果分配,这样来自同一个ip的访客固定访问一个后端服务器,有效解决了动态网页存在的session共享问题
fair 这是比上面两个更加智能的负载均衡算法 此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的相应时间来分配请求,响应时间段的优先分配,nginx本身不支持fair的,如果需要使用这种调度算法,不许下载nginx的upstream_fair模块
URL_hash,此方法按访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率,nginx本身不支持url_hash的,要使用要安装hash软件包
在http upstream模块中,可以通过server指令指定后端服务器的ip地址和端口,通时还可以设定每个后端服务器在负载均衡调度中的状态,常用的状态有
down,表示当前的server展示不参与负载均衡;
backup,预留的备份机器,当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因此这台机器的压力最轻
本文出自 “10897714” 博客,请务必保留此出处http://10907714.blog.51cto.com/10897714/1794803
标签:nginx介绍
原文地址:http://10907714.blog.51cto.com/10897714/1794803