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 14:48
下一篇 2017-06-19 16:15

相关推荐

  • 误删除libc.so.6时,该怎么恢复

           一周一周光阴似流水,转瞬即逝,又到了该说点什么的时候了。这周老师给我们出了一道实验题,内容是当你不小心误删除了libc.so.6这个库文件时,怎么恢复。意不意外?惊不惊喜?那下面就来简单说说(呃……为什么不是详细说说呢,因为这个这个水平有限,也只能是理解多少,给…

    2017-08-11
  • 从2个命令简单聊聊CentOS账户锁定原理

    linux中 passwd -l 和usermod -L有什么区别,各自的解锁和锁定原理是什么样的呢?

    2017-11-16
  • LVM逻辑卷管理器(Logical Volume Manager)

    逻辑卷管理器(Logical Volume Manager) 简介      LVM的做法是将几个物理的分区通过软件组合成为一块看起来是独立的大磁盘(VG),然后将这块大磁盘再分成可以使用的分区(LV),最终就能够挂载使用了。内部通过PE来进行扩展或缩小。 PV(PhysicalVolume)物理卷 用fdisk命令调整系统标识…

    Linux干货 2016-09-01
  • 权限管理

           学习文件和目录的权限管理,不仅在学习上对我们的帮助很大,而且在工作上帮助也很大,因为你对文件或目录设置了权限,其他用户只能根据你设置的权限对文件或目录进行浏览,修改,删除或执行,也正是如此,权限的管理很重要。下面我就对Linux的权限管理进行简单的介绍。 Linux下的文件类型 -:普…

    Linux干货 2016-08-08
  • N25-第九周作业

    第九周 1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # sum_login=0 sum_nologin=0 for i in $(awk -F: ‘{print $7}’ /etc/passwd);do if…

    Linux干货 2017-03-10
  • 计算机的发展及组成

    计算机发展 计算机(Computer):俗称电脑,是一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动、高速地处理,然后把处理结果输出的现代化智能电子设备。 1946年,世界上诞生了第一台计算机,用于军事,计算弹道。 1946年数学家冯.诺依曼提出冯诺依曼体系结构,即所有计算机由运算器、控制器、存储器、输入设备、输出设备组成,所有遵循冯.诺依曼…

    Linux干货 2017-07-13