核心功能

在Nginx配置文件总可以把配置文件的结构如下:

            main配置段
event {
...
}
http {
...
server {
server_name
root
location /uri/ {
...
}
}
server {
...
}
}

在Nginx中每个参数都会有自己所在的Context,有的只能在指定的Context使用,而有的配置可以在多个Context中使用。下面介绍的是main 段的和event端的相关配置。

main配置段

daemon

Syntax: daemon on | off;
Default: daemon on;
Context: main

确定nginx是否应该成为守护进程。 主要用于开发过程中。

env

Syntax: env variable[=value];
Default: env TZ;
Context: main

默认情况下,nginx删除从其父进程继承的所有环境变量,除了TZ变量。 此指令允许保留一些继承的变量,更改其值或创建新的环境变量。 详细参考

events

Syntax: events { ... }
Default: —
Context: main

提供配置文件上下文,其中指定了影响连接处理的指令。

load_module

Syntax: load_module file;
Default: —
Context: main
This directive appeared in version 1.9.11.

加载动态模块。此伪指令出现在1.9.11版本中。

lock_file

Syntax: lock_file file;
Default: lock_file logs/nginx.lock;
Context: main

nginx使用锁定机制来实现accept_mutex和序列化对共享内存的访问。 在大多数系统上,锁是使用原子操作实现的,并且此伪指令被忽略。

master_process

Syntax: master_process on | off;
Default: master_process on;
Context: main

是否以master/worker模型运行nginx;

pcre_jit

Syntax: pcre_jit on | off;
Default:
pcre_jit off;
Context: main
This directive appeared in version 1.1.12.

启用或禁用对配置解析时间已知的正则表达式使用“即时编译”(PCRE JIT)。
PCRE JIT可以加速正则表达式的处理。
JIT在PCRE库中可用,从使用--enable-jit配置参数构建的8.20版本开始。 当PCRE库使用nginx(--with-pcre =)构建时,通过--with-pcre-jit配置参数启用JIT支持。

pid

Syntax: pid file;
Default: pid nginx.pid;
Context: main

指定nginx进程的pid文件路径;

ssl_engine

Syntax: ssl_engine device;
Default: —
Context: main

定义硬件SSL加速器的名称。

thread_pool

Syntax: thread_pool name threads=number [max_queue=number];
Default: thread_pool default threads=32 max_queue=65536;
Context: main
This directive appeared in version 1.7.11.

定义用于多线程读取和发送文件的命名线程池,而不阻塞worker进程。

timer_resolution

Syntax: timer_resolution interval;
Default: —
Context: main

该配置指令允许用户减少调用gettimeofday()的次数。默认情况下,该函数在每次I/O端口监听(比如epoll_wait)返回后都将被调用,而通过timer_resolution配置选项可以直接指定调用gettimeofday()函数的间隔时间。

user

Syntax: user user [group];
Default: user nobody nobody;
Context: main

定义worker进程使用的用户和组凭证。 如果省略group,则使用名称等于user的组。

worker_cpu_affinity

Syntax: worker_cpu_affinity cpumask ...;
worker_cpu_affinity auto [cpumask];
Default: —
Context: main

将worker进程绑定到CPU核心。 每个CPU核心由允许的CPU的位掩码表示。 应该为每个worker进程定义一个单独的核心。 默认情况下,worker进程不绑定到任何特定的CPU。
一个四核CPU可以做如下配置:

worker_processes    4;
worker_cpu_affinity 0001 0010 0100 1000;

上面是绑定每个worker 进程到指定的CPU上,而下面的:

worker_processes    2;
worker_cpu_affinity 0101 1010;

将第一个worker进程绑定到CPU0 / CPU2,将第二个worker进程绑定到CPU1 / CPU3。 第二个例子适用于超线程。
特殊值auto(1.9.10)允许将worker进程自动绑定到可用的CPU:

worker_processes auto;
worker_cpu_affinity auto;

worker_priority

Syntax: worker_processes number | auto;
Default: worker_processes 1;
Context: main

定义worker进程的调度优先级,就像由nice命令完成的:负数意味着更高的优先级。 允许范围通常在-20到20之间变化。

worker_processes

Syntax: worker_processes number | auto;
Default: worker_processes 1;
Context: main

worker进程的个数;通常应该为物理CPU核心数量减1;可以为"auto",实现自动设定;

worker_rlimit_core

Syntax: worker_rlimit_core size;
Default: —
Context: main

更改worker进程最大核心文件大小(RLIMIT_CORE)的限制。用于在不重新启动主进程的情况下增加限制。

worker_rlimit_nofile

Syntax: worker_rlimit_nofile number;
Default: —
Context: main

更改worker进程最大打开文件数(RLIMIT_NOFILE)的限制。用于在不重新启动主进程的情况下增加限制。

working_directory

Syntax: working_directory directory;
Default: —
Context: main

定义worker进程的当前工作目录。 它主要用于编写核心文件,在这种情况下,worker进程应该具有指定目录的写入权限。

event 配置段

accept_mutex

Syntax: accept_mutex on | off;
Default: accept_mutex off;
Context: events

各worker接收用户的请求的负载均衡锁;启用时,表示用于让多个worker轮流地、序列化地响应新请求; 否则,将向所有worker进程通知有关新连接的信息,如果新连接数量较少,则某些worker进程可能只会浪费系统资源。
在版本1.11.3之前,默认值为on。

accept_mutex_delay

Syntax: accept_mutex_delay time;
Default: accept_mutex_delay 500ms;
Context: events

如果启用accept_mutex,则指定如果另一个worker进程当前正在接受新连接,worker进程将尝试重新启动接受新连接的最长时间。

multi_accept

Syntax: multi_accept on | off;
Default: multi_accept off;
Context: events

如果禁用multi_accept,worker进程将一次接受一个新连接。 否则,worker进程将一次接受所有新连接。

use

Syntax: use method;
Default: —
Context: events

指定要使用的连接处理方法。 通常不需要明确指定它,因为nginx将默认使用最有效的方法。

worker_aio_requests

Syntax: worker_aio_requests number;
Default: worker_aio_requests 32;
Context: events
This directive appeared in versions 1.1.4 and 1.0.7.

当使用带有epoll连接处理方法的aio时,为单个worker进程设置未完成的异步I / O操作的最大数量。

worker_connections

Syntax: worker_connections number;
Default: worker_connections 512;
Context: events

每个worker进程所能够响应的最大并发请求数量;应该记住,这个数字包括所有连接(例如与代理服务器的连接等),而不仅仅是与客户端的连接。 另一个考虑是同时连接的实际数量不能超过打开文件的最大数量的当前限制,可以通过worker_rlimit_nofile更改。
在nginx中设置的最大连接数为:
worker_proceses * worker_connections

其他

include

Syntax: include file | mask;
Default: —
Context: any

将另一个文件或匹配指定掩码的文件包含到配置中。 包含的文件应包含语法正确的指令和块。

error_log

Syntax: error_log file [level];
Default: error_log logs/error.log error;
Context: main, http, mail, stream, server, location

配置日志记录。
第一个参数定义将存储日志的文件。
第二个参数确定日志记录的级别,可以是以下之一:debug,info,notice,warn,error,crit,alert或emerg。 以上的日志级别按严重性递增的顺序列出。 设置特定日志级别将导致记录指定日志级别和更严重日志级别的所有消息。 例如,默认级别error将导致记录错误,crit,alert和emerg消息。 如果省略此参数,则使用error。
出于调试的需要,可以设定为debug;但debug仅在编译时使用了“--with-debug”选项时才有效;

Core functionality.md的更多相关文章

  1. Professional C# 6 and .NET Core 1.0 - Chapter 39 Windows Services

    本文内容为转载,供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处:Professional C# 6 and .NET Core 1.0 - Chapter 39 Windows Servi ...

  2. 从零开始构建一个的asp.net Core 项目(二)

    接着上一篇博客继续进行.上一篇博客只是显示了简单的MVC视图页,这篇博客接着进行,连接上数据库,进行简单的CRUD. 首先我在Controllers文件夹点击右键,添加->控制器 弹出的对话框中 ...

  3. Intel processor brand names-Xeon,Core,Pentium,Celeron----Celeron

    http://en.wikipedia.org/wiki/Celeron Celeron From Wikipedia, the free encyclopedia     Celeron Produ ...

  4. 2019-1-17 前言 C#高级编程(第11版)

    C#已更新为更快的速度.主要版本7.0是2017年3月发布,次要版本7.1和7.2很快发布在2017年8月和2017年12月.通过项目设置,您可以与每个应用程序一起分发,是开源的,不可用仅适用于Win ...

  5. metamask源码学习-metamask-controller.js

    The MetaMask Controller——The central metamask controller. Aggregates other controllers and exports a ...

  6. Guide to Porting MetaMask to a New Environment

    https://github.com/MetaMask/metamask-extension/blob/develop/docs/porting_to_new_environment.md MetaM ...

  7. gopherjs

    An example implementation of a GopherJS client and a Go server using the Improbable gRPC-Web impleme ...

  8. Linux内核配置选项

    http://blog.csdn.net/wdsfup/article/details/52302142 http://www.manew.com/blog-166674-12962.html Gen ...

  9. Build Telemetry for Distributed Services之OpenCensus:C#

    OpenCensus Easily collect telemetry like metrics and distributed traces from your services OpenCensu ...

随机推荐

  1. Lind.DDD.Events事件总线~自动化注册

    回到目录 让大叔兴奋的自动化注册 对于领域事件之前说过,在程序启动时订阅(注册)一些事件处理程序,然后在程序的具体位置去发布(触发)它,这是传统的pub/sub模式的体现,当然也没有什么问题,为了让它 ...

  2. 【工业串口和网络软件通讯平台(SuperIO)教程】一.通讯机制

    1.1    应用场景 通讯平台的交互对象包括两方面:第一.与硬件产品交互.第二.与软件产品交互.基本这两方面考虑,通讯平台一般会应用在两个场景: 1)通讯平台应用在PC机上 主要应用在自动站的工控机 ...

  3. Chocolat.js – 响应式的 jQuery Lightbox 插件

    Chocolat.js 使您能够显示一个或多个图像在同一页面上.给用户展示一组图片缩略图,可以显示全页或块.Chocolat.js 可以很好地处理所有主要的浏览器.它在下面这些浏览器测试通过:IE7+ ...

  4. css3之3d导航

    css3的新属性非常不错,目前IE除外其他浏览器都已支持 实现原理:比如元素a在hover时候可以改变元素b的状态. 效果如本农导航,欢迎采用和建议~ a:hover b{ 执行简单动画效果 } HT ...

  5. “不要抄代码!自己的代码也不要抄!”

    在 Adventure 位于深圳的电子设备组装厂(SZE)里,小朱狠狠的对自己说. 他刚刚在调试 STM32F407VG 的 SPI 功能.就在昨天,他刚刚调试好了 STM32F407VG 的 USA ...

  6. iOS导航栏标题颜色

    按钮的颜色 [self.navigationBar setTintColor:[UIColor whiteColor]]; 标题颜色.字体 [self.navigationBar setTitleTe ...

  7. Xcode插件优缺点对比(推荐20款插件)

    本文大致整理了自己用过的一些插件的使用感想(就是好不好用). 在那之前先简单贴两条插件须知,知道的可以忽略. 1.Alcatraz 类似于管理第三方库的cocoapods,管理插件也有个Alcatra ...

  8. UILabel

    //UILabel->UIView /* 1.实例化 2.属性 3.添加到父视图上 */ //实例化 UILabel *label = [[UILabel alloc] initWithFram ...

  9. Bitset<>用于unordered container时的默认hash函数

    自从c++11起,bitset用于unordered container,将会提供默认的hash函数. 在gcc中,相关代码如下: // DR 1182. /// std::hash speciali ...

  10. 基于物理渲染的渲染器Tiberius计划

    既然决定实现一个光栅化软件渲染器,我又萌生了一个念头:实现一个基于物理渲染的渲染器.