nginx:
master/worker
master:配置文件分析和加载、管理worker、平滑升级;
worker:处理用户请求;
cache loader, cache manager:缓存加载和缓存管理
user
Syntax: user user [group];
Default: user nobody nobody;
Context: main
pid /PATH/TO/PID_FILE;
指定存储nginx主进程进程号码的文件路径;
include file | mask;
指明包含进来的其它配置文件片断;
load_module file;
性能优化相关的配置:
1、worker_processes number | auto;
worker进程的数量;通常应该等于小于当前主机的cpu的物理核心数;
auto:当前主机物理CPU核心数;
2、worker_cpu_affinity cpumask …;
worker_cpu_affinity auto [cpumask];
CPU MASK:
00000000:
00000001:0号CPU
00000010:1号CPU
` 3、worker_priority number;
指定worker进程的nice值,设定worker进程优先级;[-20,20]
4、worker_rlimit_nofile number;
worker进程所能够打开的文件数量上限;
调试、定位问题:
1、daemon on|off;
是否以守护进程方式运行Nignx;
2、master_process on|off;
是否以master/worker模型运行nginx;默认为on;
3、error_log file [level];
worker_connections number;
每个worker进程所能够打开的最大并发连接数数量;
use method;
指明并发连接请求的处理方法;
accept_mutex on | off;
处理新的连接请求的方法;on意味着由各worker轮流处理新请求,Off意味着每个新请求的到达都会通知所有的worker进程;
server { … }
配置一个虚拟主机;
listen PORT监听端口
server_name name …;
指明虚拟主机的主机名称;后可跟多个由空白字符分隔的字符串;
tcp_nodelay on | off;
在keepalived模式下的连接是否启用TCP_NODELAY选项;
tcp_nopush on|off;
在sendfile模式下,是否启用TCP_CORK选项;
sendfile on | off;
是否启用sendfile功能;
root path;
设置web资源路径映射;
location [ = | ~ | ~* | ^~ ] uri { … }
设置配置取决于请求URI
alias path;
定义路径别名,文档映射的另一种机制;
index file …;
默认资源;http, server, location;
error_page code … [=[response]] uri;
定义将显示指定错误的URI
try_files file … uri;
定义客户端请求的相关配置
keepalive_timeout timeout [header_timeout];
设定保持连接的超时时长,0表示禁止长连接;默认为75s;
keepalive_requests number;
在一次长连接上所允许请求的资源的最大数量,默认为100;
keepalive_disable none | browser …;
对哪种浏览器禁用长连接;
send_timeout time;
向客户端发送响应报文的超时时长,此处,是指两次写操作之间的间隔时长;
client_body_buffer_size size;
用于接收客户端请求报文的body部分的缓冲区大小;默认为16k;
client_body_temp_path path [level1 [level2 [level3]]];
设定用于存储客户端请求报文的body部分的临时存储路径及子目录结构和数量;
limit_rate rate;
限制响应给客户端的传输速率,单位是bytes/second,0表示无限制;
limit_except method … { … }
限制对指定的请求方法之外的其它方法的使用客户端;
aio on | off | threads[=pool];
是否启用aio功能;
directio size | off;
在Linux主机启用O_DIRECT标记,此处意味文件大于等于给定的大小时使用,例如directio 4m;
open_file_cache_valid time;
缓存项有效性的检查频率;默认为60s;
open_file_cache_min_uses number;
在open_file_cache指令的inactive参数指定的时长内,至少应该被命中多少次方可被归类为活动项;
open_file_cache_errors on | off;
是否缓存查找时发生错误的文件一类的信息;
ngx_http_access_module模块:
实现基于ip的访问控制功能
allow address | CIDR | unix: | all;白名单
deny address | CIDR | unix: | all;黑名单
ngx_http_auth_basic_module模块
ngx_http_stub_status_module模块
用于输出nginx的基本状态信息;
ngx_http_log_module模块
他的ngx_http_log_module模块以指定的格式写入请求日志
log_format name string …;
string可以使用nginx核心模块及其它模块内嵌的变量;
access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
访问日志文件路径,格式及相关的缓冲的配置;
buffer=size
flush=time
open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
缓存各日志文件相关的元数据信息;
max:缓存的最大文件描述符数量;
min_uses:在inactive指定的时长内访问大于等于此值方可被当作活动项;
inactive:非活动时长;
valid:验正缓存中各缓存项是否为活动项的时间间隔;
gzip on | off;
启用或禁用响应的gzipping .
gzip_comp_level level;
设置响应的gzip压缩级别。可接受的值在1到9之间
gzip_disable regex …;
禁用gzipping oef响应请求与“用户代理”头字段匹配任何指定的正则表达式
gzip_min_length length;
启用压缩功能的响应报文大小阈值;
gzip_buffers number size;
支持实现压缩功能时为其配置的缓冲区数量及每个缓存区的大小;
gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any …;
nginx作为代理服务器接收到从被代理服务器发送的响应报文后,在何种条件下启用压缩功能的;
off:对代理的请求不启用
no-cache, no-store,private:表示从被代理服务器收到的响应报文首部的 Cache-Control的值为此三者中任何一个,则启用压缩功能;
gzip_types mime-type …;
压缩过滤器,仅对此处设定的MIME类型的内容启用压缩功能;
sl on | off;
为给定的虚拟服务器启用HTTPS协议
ssl_certificate file;
当前虚拟主机使用PEM格式的证书文件;
ssl_certificate_key file;
当前虚拟主机上与其证书匹配的私钥文件;
ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2];
支持ssl协议版本,默认为后三个;
ssl_session_cache off | none | [builtin[:size]] [shared:name:size];
builtin[:size]:使用OpenSSL内建的缓存,此缓存为每worker进程私有;
[shared:name:size]:在各worker之间使用一个共享的缓存;
ssl_session_timeout time;
客户端一侧的连接可以复用ssl session cache中缓存 的ssl参数的有效时长;
原创文章,作者:忠神通,如若转载,请注明出处:http://www.178linux.com/78254