从一份配置清单详解Nginx服务器配置

2019-01-31 作者:电脑   |   浏览(75)

  Nginx是轻量级的高性能Web服务器,提供了诸如HTTP代理和反向代理、负载均衡、缓存等一系列重要特性,因而在实践之中使用广泛,笔者也在学习和实践之中。

  在本文中,我们从一份示例配置清单开始,详解一下Nginx服务器的各种配置指令的作用和用法。

  看到了下文中的包含了**“小猪佩琪色”** 的配图了吗,嘿嘿,我们开始吧!

  按照上文中的配置清单的实验,我们给worker_processes配置的数目是:3,启动Nginx服务器后,我们可以后台看一下主机上的Nginx进程情况:

  Nginx进程是作为系统守护进程在运行,需要在某文件中保存当前运行程序的主进程号,Nginx支持该保存文件路径的自定义

  该指令主要用于将其他的Nginx配置或者第三方模块的配置引用到当前的主配置文件中

  该指令默认为on状态,表示会对多个Nginx进程接收连接进行序列化,防止多个进程对连接的争抢。

  说到该指令,首先得阐述一下什么是所谓的 “惊群问题”,可以参考 WIKI百科的解释。就Nginx的场景来解释的话大致的意思就是:当一个新网络连接来到时,多个worker进程会被同时唤醒,但仅仅只有一个进程可以真正获得连接并处理之。如果每次唤醒的进程数目过多的话,其实是会影响一部分性能的。

  所以在这里,如果accept_mutex on,那么多个worker将是以串行方式来处理,其中有一个worker会被唤醒;反之若accept_mutex off,那么所有的worker都会被唤醒,不过只有一个worker能获取新连接,其它的worker会重新进入休眠状态

  该指令默认为off状态,意指每个worker process 一次只能接收一个新到达的网络连接。若想让每个Nginx的worker process都有能力同时接收多个网络连接,则需要开启此配置

  number默认值为512,表示允许每一个worker process可以同时开启的最大连接数

  cat mime.types 来查看mime.types文件内容,我们发现其就是一个types结构,里面包含了各种浏览器能够识别的MIME类型以及对应类型的文件后缀名字,如下所示:

  format:可选项,自定义服务日志的字符串格式。其也可以使用 log_format 定义的格式

  此时表示该虚拟主机可以接收类似域名 等的请求而拒绝 的域名请求,所以说用正则表达式可以实现更精准的控制

  这里的uri分为标准uri和正则uri,两者的唯一区别是uri中是否包含正则表达式

  “=”:用于标准uri前,要求请求字符串与uri严格匹配,一旦匹配成功则停止

  “^~”:用于标准uri前,要求Nginx找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串做匹配

  当然,还可以通过alias指令来更改location接收到的URI请求路径,指令为:

  file可以包含多个用空格隔开的文件名,首先找到哪个页面,就使用哪个页面响应请求

从一份配置清单详解Nginx服务器配置