从一份配置清单详解 Nginx 服务器配置
副标题[/!--empirenews.page--]
技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战
概述 Nginx是轻量级的高性能Web服务器,提供了诸如HTTP代理和反向代理、负载均衡、缓存等一系列重要特性,因而在实践之中使用广泛,笔者也在学习和实践之中。 在本文中,我们从一份示例配置清单开始,详解一下Nginx服务器的各种配置指令的作用和用法。 看到了下文中的包含了**“小猪佩琪色”** 的配图了吗,嘿嘿,我们开始吧! Nginx配置文件的整体结构 从图中可以看出主要包含以下几大部分内容: 1. 全局块 该部分配置主要影响Nginx全局,通常包括下面几个部分:
2. events块
3. http块
4. server块
5. location块
一份配置清单例析 笔者给出了一份简要的清单配置举例: 配置代码如下: 接下来就来详细剖析以下配置文件中各个指令的含义 配置运行Nginx服务器用户(组) 指令格式:user user [group]; user:指定可以运行Nginx服务器的用户 group:可选项,可以运行Nginx服务器的用户组 如果user指令不配置或者配置为 user nobody nobody ,则默认所有用户都可以启动Nginx进程 worker process数配置 Nginx服务器实现并发处理服务的关键,指令格式:worker_processes number | auto; number:Nginx进程最多可以产生的worker process数 auto:Nginx进程将自动检测 按照上文中的配置清单的实验,我们给worker_processes配置的数目是:3,启动Nginx服务器后,我们可以后台看一下主机上的Nginx进程情况: 很明显,理解 worker_processes 这个指令的含义就很容易了 Nginx进程PID存放路径 Nginx进程是作为系统守护进程在运行,需要在某文件中保存当前运行程序的主进程号,Nginx支持该保存文件路径的自定义 指令格式:pid file; file:指定存放路径和文件名称 如果不指定默认置于路径 logs/nginx.pid 错误日志的存放路径 指定格式:error_log file | stderr; file:日志输出到某个文件file stderr:日志输出到标准错误输出 配置文件的引入 指令格式:include file; 该指令主要用于将其他的Nginx配置或者第三方模块的配置引用到当前的主配置文件中 设置网络连接的序列化 指令格式:accept_mutex on | off; 该指令默认为on状态,表示会对多个Nginx进程接收连接进行序列化,防止多个进程对连接的争抢。 说到该指令,首先得阐述一下什么是所谓的 “惊群问题”,可以参考 WIKI百科的解释。就Nginx的场景来解释的话大致的意思就是:当一个新网络连接来到时,多个worker进程会被同时唤醒,但仅仅只有一个进程可以真正获得连接并处理之。如果每次唤醒的进程数目过多的话,其实是会影响一部分性能的。 所以在这里,如果accept_mutex on,那么多个worker将是以串行方式来处理,其中有一个worker会被唤醒;反之若accept_mutex off,那么所有的worker都会被唤醒,不过只有一个worker能获取新连接,其它的worker会重新进入休眠状态 这个值的开关与否其实是要和具体场景挂钩的。 是否允许同时接收多个网络连接 指令格式:multi_accept on | off; 该指令默认为off状态,意指每个worker process 一次只能接收一个新到达的网络连接。若想让每个Nginx的worker process都有能力同时接收多个网络连接,则需要开启此配置 事件驱动模型的选择 指令格式:use model; model模型可选择项包括:select、poll、kqueue、epoll、rtsig等...... 最大连接数的配置 指令格式:worker_connections number; number默认值为512,表示允许每一个worker process可以同时开启的最大连接数 定义MIME-Type (编辑:青岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |