nginx介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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介绍的主要内容,如果未能解决你的问题,请参考以下文章

nginx介绍

四十LNMP架构介绍MySQL安装PHP安装Nginx介绍

LNMP架构结介绍,MySQL和PHP的安装以及Nginx介绍

Nginx介绍

介绍+安装Nginx的介绍和安装详解

LNMP架构介绍 MySQL安装 PHP安装 Nginx介绍