nginx

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参数的有效时长;

原创文章,作者:忠神通,如若转载,请注明出处:http://www.178linux.com/78254

(0)
忠神通忠神通
上一篇 2017-06-19
下一篇 2017-06-19

相关推荐

  • 学习宣言

    世界上只有一种失败,就是半途而废!

    Linux干货 2016-12-29
  • 第七周小练习

    1.创建一个10G分区,并格式为ext4文件系统 (1)要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl (2)挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳 fdisk /dev/sdb n p 1 +10G w mke2fs -t&nbs…

    Linux干货 2017-01-05
  • SHELL编程之数组运用及YUM软件包管理

    SHELL编程中,当要引用到多个值的时候,一个一个地进行变量赋值会让我们的脚本变得繁琐,不利于代码的优化,所以,就需要通过数组进行定义,优化代码,减少不必要的定义和命令操作。 SHELL中的数组:存储多个元素的连续内存空间 数组名:整个属组只有一个名字 数组索引: 编号从0开始   数组名[索引]   ${array_name[index…

    Linux干货 2016-08-24
  • SSH端口转发

      SSH 会自动加密和解密所有SSH 客户端与服务端之间的网络数据。但是,SSH 还能够将其他TCP 端口的网络数据通过SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做“隧道”(tunneling),这是因为SSH 为其他TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些TCP 应用均能够…

    2017-09-10
  • 马哥教育网络班21期-第1周课程练习

    1、  描述计算机的组成及其功能。 计算机由硬件系统和软件系统两部分组成。硬件系统由运算器,控制器,存储器,输入设备和输出设备组成.     运算器:计算机中进行算术运算和逻辑运算的部件。     控制器:计算机的控制中心。协调和指挥计算机系统的操作。  &n…

    Linux干货 2016-07-12
  • sed的详细用法

    sed(Stream EDitor)是一款流编辑器,用来对文本进行过滤与替换操作。其原理是:通过文件或管道读取文件内容,但是sed默认并不直接修改源文件,而是一次仅读取文件的一行至模式空间(pattern space)根据sed指令进行编辑并输出结果后清除模式空间,即所有的操作都是在模式空间中进行的。 语法格式 sed [option]…&nb…

    Linux干货 2016-11-14