nginx配置文件说明

1、配置文件

user:nginx nginx //指定运行用户 组
worker_processes 4;//工作进程 根据cpu的核心说决定
worker_cpu_affinity 0001 0010 0100 1000;//工作进程绑定到CPU组。每个CPU集由允许的CPU的位掩码表示。
worker_priority number;//定义工作进程的调度优先级,就像通过nice命令一样:负数 number 表示更高的优先级。允许范围通常为-20到20。
accept_mutex on | off; //唤醒问题,如果开启则新连接到来按照顺序唤醒,关闭则会所有进程都会唤醒,其中一个抢占。
accept_mutex_delay 500ms; //接受新连接的时长
daemon on | off; //确定nginx是否应成为守护程序
env variable[=value]; // 定义环境变量;
error_log ;错误日志
load_module file;//动态加载模块
multi_accept on | off;//如果multi_accept被禁用,则工作进程将一次接受一个新连接。否则,工作进程将一次接受所有新连接
pcre_jit on | off;//对配置解析时已知的正则表达式启用或禁用“即时编译”(PCRE JIT)。
pid file;
ssl_engine device;//定义硬件SSL加速器的名称。
thread_pool name threads=number [max_queue=number];//thread_pool默认线程= 32 max_queue = 65536;
worker_rlimit_core size; //打开文件大小
worker_rlimit_nofile number;//打开文件数
working_directory directory;//定义工作进程的当前工作目录。
//事件、环境的定义
events{
	debug_connection address|linux;//为选定的客户端连接启用调试日志。其他连接将使用error_log指令设置的日志记录级别 。
	use method;//select  poll  epoll kqueue eventport 
	worker_connections number;//设置工作进程可以打开的最大同时连接数。
} 
//http模块
http {
	absolute_redirect on | off;//如果禁用,nginx发出的重定向将是相对的.
	aio on | off | threads[=pool];在FreeBSD和Linux上启用或禁用异步文件I / O(AIO)
	alias path; //声明定义位置
	auth_delay time;//验证时间
	client_body_buffer_size size;//设置用于读取客户端请求正文的缓冲区大小。如果请求主体大于缓冲区,则将整个主体或仅将其一部分写入 临时文件。
	//默认情况下,缓冲区大小等于两个内存页。在x86,其他32位平台和x86-64上为8K。在其他64位平台上,通常为16K。
	client_body_temp_path path [level1 [level2 [level3]]]; //定义用于存储包含客户端请求正文的临时文件的目录。
	client_body_timeout time; //默认60s定义读取客户端请求正文的超时。仅在两次连续读取操作之间的一段时间内设置超时,而不是为整个请求主体的传输设置超时。
	client_header_buffer_size size; //默认1k
	client_header_timeout time;
	client_max_body_size size; //默认1M
	connection_pool_size size;//56 | 512;允许精确调整每个连接的内存分配。该指令对性能的影响最小,
	default_type mime-type;
	etag on | off;为静态资源启用或禁用
	keepalive_requests number;//默认100,设置可以通过一个保持活动连接服务的最大请求数。发出最大数量的请求后,将关闭连接。
	keepalive_timeout 75s;//第一个参数设置超时,在此期间,保持活动的客户端连接将在服务器端保持打开状态。零值将禁用保持活动状态的客户端连接。
	limit_rate rate; 0限制向客户端传输响应的速率。在rate被以每秒字节数指定。零值禁用速率限制。
	log_not_found on | off;//启用或禁用将有关找不到文件的错误记录到 error_log中。
	log_subrequest on | off; //启用或禁用将子请求记录到 access_log中。
	max_ranges number;//限制字节范围请求中允许的最大范围数。超出限制的请求将被视为没有指定字节范围。默认情况下,范围数不受限制。零值将完全禁用字节范围支持。
	merge_slashes on | off;//启用或禁用将URI中的两个或多个相邻斜杠压缩为单个斜杠。	
	server{
		listen: 端口
		server_name:
		location {
			limit_except method ... { ... } //限制位置内允许的HTTP方法。该method参数可以是下列之一: GET, HEAD, POST, PUT, DELETE, MKCOL, COPY, MOVE, OPTIONS, PROPFIND, PROPPATCH, LOCK, UNLOCK,或 PATCH。允许该GET方法会使该 HEAD方法也被允许
		}
	}
		
}

mail {
    server_name       mail.example.com;
    auth_http         localhost:9000/cgi-bin/nginxauth.cgi;

    imap_capabilities IMAP4rev1 UIDPLUS IDLE LITERAL+ QUOTA;

    pop3_auth         plain apop cram-md5;
    pop3_capabilities LAST TOP USER PIPELINING UIDL;

    smtp_auth         login plain cram-md5;
    smtp_capabilities "SIZE 10485760" ENHANCEDSTATUSCODES 8BITMIME DSN;
    xclient           off;

    server {
        listen   25;
        protocol smtp;
    }
    server {
        listen   110;
        protocol pop3;
        proxy_pass_error_message on;
    }
    server {
        listen   143;
        protocol imap;
    }
    server {
        listen   587;
        protocol smtp;
    }
}

stream {
    upstream backend {
        hash $remote_addr consistent;

        server backend1.example.com:12345 weight=5;
        server 127.0.0.1:12345            max_fails=3 fail_timeout=30s;
        server unix:/tmp/backend3;
    }

    upstream dns {
       server 192.168.0.1:53535;
       server dns.example.com:53;
    }

    server {
        listen 12345;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass backend;
    }

    server {
        listen 127.0.0.1:53 udp reuseport;
        proxy_timeout 20s;
        proxy_pass dns;
    }

    server {
        listen [::1]:12345;
        proxy_pass unix:/tmp/stream.socket;
    }
}

2、变量说明

嵌入式变量
该ngx_http_core_module模块支持名称与Apache Server变量匹配的嵌入式变量。首先,这些是代表客户端请求的报头字段的变量,例如$http_user_agent,$http_cookie等。另外还有其他变量:

$arg_name
name请求行中的 参数
$args
请求行中的参数
$binary_remote_addr
客户端地址(二进制形式),对于IPv4地址,值的长度始终为4个字节,对于IPv6地址,值的长度始终为16个字节
$body_bytes_sent
发送给客户端的字节数,不计算响应头;此变量与 Apache模块 的“ %B”参数 兼容mod_log_config
$bytes_sent
发送给客户端的字节数(1.3.8、1.2.5)
$connection
连接序列号(1.3.8、1.2.5)
$connection_requests
通过连接发出的当前请求数(1.3.8、1.2.5)
$content_length
“内容长度”请求标头字段
$content_type
“内容类型”请求标头字段
$cookie_name
该name饼干
$document_root
当前请求的根或别名指令的值
$document_uri
和...一样 $uri
$host
优先顺序如下:请求行中的主机名,或“主机”请求标头字段中的主机名,或与请求匹配的服务器名
$hostname
主机名
$http_name
任意请求头字段;变量名称的最后一部分是将字段名称转换为小写字母,并用短划线代替下划线
$https
on如果连接以SSL模式运行,则为 “ ”,否则为空字符串
$is_args
“ ?”(如果请求行包含参数),否则为空字符串
$limit_rate
设置此变量将启用响应率限制;参见limit_rate
$msec
以毫秒为单位的当前时间(以秒为单位)(1.3.9,1.2.6)
$nginx_version
Nginx版本
$pid
工作进程的PID
$pipe
“ p”如果请求被流水线.“ ”否则(1.3.12,1.2.7)
$proxy_protocol_addr
来自PROXY协议标头(1.5.12)的客户端地址
必须通过proxy_protocol在listen指令中设置参数来预先启用PROXY协议 。

$proxy_protocol_port
PROXY协议标头(1.11.0)中的客户端端口
必须通过proxy_protocol在listen指令中设置参数来预先启用PROXY协议 。

$proxy_protocol_server_addr
PROXY协议标头中的服务器地址(1.17.6)
必须通过proxy_protocol在listen指令中设置参数来预先启用PROXY协议 。

$proxy_protocol_server_port
PROXY协议标头中的服务器端口(1.17.6)
必须通过proxy_protocol在listen指令中设置参数来预先启用PROXY协议 。

$query_string
和...一样 $args
$realpath_root
与当前请求 的根或别名指令的值相对应的绝对路径名 ,所有符号链接都解析为真实路径
$remote_addr
客户地址
$remote_port
客户端口
$remote_user
基本身份验证随附的用户名
$request
完整的原始请求行
$request_body
请求主体
当将请求主体读到内存缓冲区时, 该变量的值在由proxy_pass, fastcgi_pass, uwsgi_pass和 scgi_pass指令处理的位置中可用 。

$request_body_file
带有请求正文的临时文件的名称
在处理结束时,需要删除文件。要始终将请求正文写入文件, 需要启用client_body_in_file_only。当在代理请求中或在对FastCGI / uwsgi / SCGI服务器的请求中传递临时文件的名称时,应分别通过 proxy_pass_request_body off, fastcgi_pass_request_body off, uwsgi_pass_request_body off或 scgi_pass_request_body off 指令来禁用传递请求正文。 。

$request_completion
“ OK”(如果请求已完成),否则为空字符串
$request_filename
当前请求的文件路径(基于 root或alias 伪指令以及请求URI)
$request_id
从16个随机字节生成的唯一请求标识符,以十六进制(1.11.0)
$request_length
请求长度(包括请求行,标头和请求正文)(1.3.12,1.2.7)
$request_method
请求方法,通常是“ GET”或“ POST”
$request_time
请求以毫秒为单位的处理时间(以秒为单位)(1.3.9、1.2.6);从客户端读取第一个字节以来经过的时间
$request_uri
完整的原始请求URI(带有参数)
$scheme
请求方案,“ http”或“ https”
$sent_http_name
任意响应头域;变量名称的最后一部分是将字段名称转换为小写字母,并用短划线代替下划线
$sent_trailer_name
在响应末尾发送的任意字段(1.13.2);变量名称的最后一部分是将字段名称转换为小写字母,并用短划线代替下划线
$server_addr
接受请求的服务器的地址
计算此变量的值通常需要一个系统调用。为避免系统调用,listen伪指令必须指定地址并使用bind参数。

$server_name
接受请求的服务器的名称
$server_port
接受请求的服务器的端口
$server_protocol
请求协议,通常是“ HTTP/1.0”,“ HTTP/1.1”或“ HTTP / 2.0 ”
$status
响应状态(1.3.2、1.2.2)
$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space
有关客户端TCP连接的信息;在支持TCP_INFO套接字选项的 系统上可用
$time_iso8601
ISO 8601标准格式(1.3.12,1.2.7)的本地时间
$time_local
通用日志格式的本地时间(1.3.12,1.2.7)
$uri
请求中的当前URI,已规范化
$uri在请求处理期间(例如,进行内部重定向或使用索引文件时), 值可能会更改。

3、补充

1、安装模块
这个模块内置在了nginx中,除非你安装中使用了--without-http_access_module。如果你还没安装过nginx,那么请参考下ttlsa之前写的nginx安装.

2、指令
allow
语法:     allow address | CIDR | unix: | all;
默认值:     —
配置段:     http, server, location, limit_except

允许某个ip或者一个ip段访问.如果指定unix:,那将允许socket的访问.注意:unix在1.5.1中新加入的功能,如果你的版本比这个低,请不要使用这个方法。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值