最新消息:马哥2016Linux运维实战班全新上线,详情可了解 http://www.magedu.com/

nginx

运维专栏 忠神通 48浏览 0评论

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;

性能优化相关的配置:

            1worker_processes number | auto;

                    worker进程的数量;通常应该等于小于当前主机的cpu的物理核心数;

                            auto:当前主机物理CPU核心数;

            2worker_cpu_affinity cpumask …;

                    worker_cpu_affinity auto [cpumask];

                            CPU MASK

                                00000000

                                000000010CPU

                                000000101CPU

      `    3worker_priority number;

                    指定worker进程的nice值,设定worker进程优先级;[-20,20]

            4worker_rlimit_nofile number;

                    worker进程所能够打开的文件数量上限;

调试、定位问题:

            1daemon on|off;

                是否以守护进程方式运行Nignx

            2master_process on|off;

                是否以master/worker模型运行nginx;默认为on

            3error_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/second0表示无限制;

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压缩级别。可接受的值在19之间

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-storeprivate:表示从被代理服务器收到的响应报文首部的 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参数的有效时长;

转载请注明:linux运维部落 » nginx

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址