核心机能 | english русский 简体中文 עברית 日本語 türkçe 新闻 [en] nginx 介绍 下载 [en] 安全漏洞 [en] 文档 FAQ 外部连接 [en] 书籍 [en] 支持 [en] 捐献 [en] trac wiki nginx.com | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
示例配置
user www www; worker_processes 2; error_log /var/log/nginx-error.log info; events { use kqueue; worker_connections 2048; } ...
指令
如果使用,nginx的多个工作进程将以串行方式接入新连接。否则,新连接将通报给所有工作进程,而且如果新连接数量较少,某些工作进程可能只是在浪费系统资源。
必须开启
使用accept_mutex时,可以指定某个工作进程检测到其它工作进程正在接入新连接时,自身等待直到重新开始尝试接入新连接的最大时间间隔。
决定nginx是否应以守护进程的方式工作。主要用于开发。
开启针对特定客户端连接的调试日志。除开这些连接,其它连接将使用error_log指令设置的日志级别。
被调试的连接可以使用IPv4或IPv6(1.3.0, 1.2.1)网络地址来指定,
也可以使用主机名来设置连接。
对于UNIX域套接字(1.3.0, 1.2.1),使用“ events { debug_connection 127.0.0.1; debug_connection localhost; debug_connection 192.0.2.0/24; debug_connection ::1; debug_connection 2001:0db8::/32; debug_connection unix:; ... }
只有在编译时设置
这条指令用于调试。
当nginx检测到内部错误,比如重启工作进程时出现套接字泄漏,开启
配置日志。
第一个参数定义了存放日志的文件。
如果设置为特殊值
第二个参数定义日志级别。
日志级别在上面已经按严重性由轻到重的顺序列出。
设置为某个日志级别将会使指定级别和更高级别的日志都被记录下来。
比如,默认级别 为了使
nginx默认会删除从父进程继承的除TZ变量以外的所有环境变量。 这条指令允许nginx保留某些继承的环境变量,改变它们的值,或者创建新的环境变量。 这些变量将:
TZ变量总是被继承,并且可被ngx_http_perl_module模块使用, 除非明确配置不允许这样。 使用示例: env MALLOC_OPTIONS; env PERL5LIB=/data/site/modules; env OPENSSL_ALLOW_PROXY_CERTS=1;
NGINX环境变量是由nginx内部设置和使用,用户不应直接设置它。
提供配置上下文,以解析那些影响连接处理的指令。
将另一个 使用示例: include mime.types; include vhosts/*.conf;
nginx使用锁机制来实现accept_mutex,并将访问串行化到共享内存。 绝大多数系统中,锁是由原子操作实现,那么可以忽略这条指令。 另外一些系统使用“锁文件”的机制,那么这条指令将指定锁文件的前缀。
决定是否启动工作进程。这条指令是为nginx开发者设计的。
关闭时,工作进程一次只会接入一个新连接。否则,工作进程一次会将所有新连接全部接入。 使用kqueue连接处理方式时,可忽略这条指令,因为kqueue可以报告有多少新连接等待接入。
使用rtsig连接处理方式将自动开启
这个指令出现在版本 1.1.12. 开启或禁止在配置解析阶段为正则表达式使用“即时编译”(PCRE JIT)技术。 PCRE JIT可以显著提升处理正则表达式的速度。 从PCRE 8.20版本开始,可用PCRE的
定义存储nginx主进程ID的
定义SSL硬件加速器的名字。
在工作进程中降低定时器的精度,因此可以减少产生 Example: timer_resolution 100ms;
时间间隔的内部实现取决于使用的方法:
指定使用的连接处理
定义工作进程使用的
这个指令出现在版本 1.1.4 和 1.0.7.
在使用epoll连接处理方式的情况下使用aio时,
可以设置单个工作进程未处理的异步I/O操作的最大
设置每个工作进程可以打开的最大并发连接数。 需要记住,这个数量包含所有连接(比如,和后端服务器建立的连接,还有其他的), 而不仅仅是和客户端的连接。 另外需要考虑的是,实际的并发连接数是不能超过打开文件的最大数量限制的,这个限制可以用worker_rlimit_nofile指令修改。
绑定工作进程到指定的CPU集合。每个CPU集合使用一个标记允许使用的CPU的位图来表示。 需要为每个工作进程分别设置CPU集合。 工作进程默认不会绑定到任何特定的CPU。 比如 worker_processes 4; worker_cpu_affinity 0001 0010 0100 1000; 将每个工作进程分别绑定至不同的CPU,而 worker_processes 2; worker_cpu_affinity 0101 1010; 将第一个工作进程绑定至CPU0/CPU2,将第二个工作进程绑定至CPU1/CPU3。 上面第二个例子适合于超线程的机器。
这条指令仅在FreeFSD和Linux系统有效。
定义工作进程的调度优先级。这与 举例: worker_priority -10;
定义工作进程的数量。
关于这个值的优化依赖很多因素,其中包括(但不限于)CPU的核数,存储数据的硬盘数量和负载模式。
如果感觉到迷惑,将它设置为等于可用的CPU核数是一个不错的开始(值为“
修改工作进程的core文件尺寸的最大值限制(
修改工作进程的打开文件数的最大值限制(
在支持rtsig连接处理方式的系统中,修改工作进程的信号队列长度限制(
定义工作进程的当前工作路径。 主要用于设置core文件的目标地址。工作进程应当具有指定路径的写权限。
|