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

相关推荐

  • 操作系统概述

                                 操作系统概述 对于一个真正的计算机系统来说,我们可以说它是由硬件+软件组成。没有软件的计算机,我们称它为裸机。当然,它也干不成什么事。所以,要想使得计算…

    Linux干货 2016-10-27
  • 大概认识linux

             linux简介 其实对Linux系统不是很了解,都是在百度和谷歌搜索出来,才发现Linux很多版本。各版本各优缺点。首先简单说下发展史,Linux在1991年10月5号(这是第一次正式向外公布的时间)在芬兰诞生,以后借助于Internet网络向全世界各地传播,由计算机爱好者的再次开发新功能和…

    Linux干货 2016-05-29
  • 浅谈RPM

    浅谈RPM    [先絮叨下编译啊]   1、 库:其实就是一个程序模块(它没有执行入口,不能独立执行,只能被能独立运行的程序调用时执行)你可以把它想象成工具螺丝刀,可执行的程序是就是你自己;螺丝刀能自己干活吗?没有螺丝刀能拧螺丝吗?或者说你现在制作一个? 螺丝刀可以实现这个功能但需要你来执行这个动作。   2、静态编译:将程序所需要的所有的库都编…

    Linux干货 2015-04-27
  • 文件共享服务之NFS

    文件共享服务之NFS 文件共享服务之NFS 一、什么是NFS及NFS的工作流程 二、NFS发展及问题 三、NFS简单部署 一、什么是NFS及NFS的工作流程 NFS(Network File System,网络文件系统)  NFS是借助于RPC来实现功能的 RPC:(Remote  Procedure  Call  p…

    Linux干货 2016-04-19
  • Javascript 装载和执行

    一两个月前在淘宝内网里看到一个优化Javascript代码的竞赛,发现有不少的人对Javascript的执行和装载的基础并不懂,所以,从那天起我就想写一篇文章,但一直耽搁了。自上篇《浏览器渲染原理简介》,正好也可以承前启后。 首先,我想说一下Javascript的装载和执行。通常来说,浏览器对于Javascript的运行有两大特性:1)载入后马上执行,2)执…

    Linux干货 2016-08-15
  • Linux自动备份脚本

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1541163        今天网上一个朋友问了我一个shell的题目,让我帮他做下。下面是题目以及解题思路。 题目:…

    Linux干货 2016-08-15