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

相关推荐

  • Bash Shell详解

    引言:什么是Shell? Linux的命令行接口归结起来就是各种Shell,那么到底什么是Shell?Shell,译为外壳,是用户直接连入计算机所使用的计算机程序,负责解析用户提供的命令,如词法分析、语法分析、句法分析。 1.Shell的分类 Linux 的命令 shell 是与操作系统相分离的一层。不同的 shell 环境影响您具备不同的功能,比如可编辑的…

    2017-09-07
  • 手动编译内核+busybox+dropbear+nginx

    我们需要先在宿主机上添加一个磁盘,然后,把这个磁盘做好分区和文件系统: fdisk /dev/sdb 创建第一个分区: n p 1 +512M 创建第二个分区: n p 2 +10G 保存退出: w 为分区提供文件系统: kpartx /dev/sdb 为分区提供文件系统: mke2fs -t ext4 /dev/sd…

    Linux干货 2015-09-24
  • Linux文件系统

    1、Linux文件系统层级标准 为什么Linux的不同发行版中的目录结构基本上都一样? Linux有一个组织叫LSB定义的Linux发行版基础目录名称命名法则及功用规定,这种标准叫做 FHS(Filesystem Hierarchy Standard),文件系统层级标准。 /boot:系统引导启动时要加载的静态文件:kernel, initramfs(ini…

    Linux干货 2016-10-29
  • linux高级文件系统管理

    磁盘配额:         (1)如果存放的文件空间不足,虽然分区后不能直接扩容,但是可以迁移,下面以/home目录示例: 1、新建分区,同步分区表 /dev/sda62、mkfs.ext4 /dev/sda6             &n…

    Linux干货 2017-03-14
  • Hadoop实战实例

     Hadoop 是Google MapReduce的一个Java实现。MapReduce是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同java程序员可以不考虑内存泄露一样, MapReduce的run-time系统会解决输入数据的分布细节,跨越机器集群的程序执行调度,处理机器…

    Linux干货 2015-04-13
  • 马哥教育网络21期+第十二周练习博客下

    6、在LAMP架构中,请分别以php编译成httpd模块形式和php以fpm工作为独立守护进程的方式来支持httpd,列出详细的过程。 # LAMP编译安装 # LAMP编译安装,目前CentOS7操作系统上可以使用yum进行安装,在CentOS6上需要编译安装 CentOS6 http-2.2主要安装的,编译安装LAMP需要h…

    Linux干货 2016-10-17