nginx 进程数,建议按照cpu 数目来指定,可是也能够直接指定为auto。nginx
为每一个进程分配cpu,上例中将8 个进程分配到8 个cpu,固然能够写多个,或者将一
个进程分配到多个cpu。
参考:https://blog.csdn.net/u011957758/article/details/50959823web
这个指令是指当一个nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文
件数(ulimit -n)与nginx 进程数相除,可是nginx 分配请求并非那么均匀,因此最好与ulimit -n 的值保持一致。浏览器
使用epoll的I/O模型;epoll是多路复用IO(I/O Multiplexing)中的一种方式服务器
每一个进程容许的最多链接数,理论上每台nginx服务器的最大链接数为worker_processes*worker_connections。cookie
HTTP 有一个 KeepAlive 模式,它告诉 webserver 在处理完一个请求后保持这个 TCP 链接的打开状态。若接收到来自客户端的其它请求,服务端会利用这个未被关闭的链接,而不须要再创建一个链接。
Nginx 使用 keepalive_timeout 来指定 KeepAlive 的超时时间(timeout)。指定每一个 TCP 链接最多能够保持多长时间。Nginx 的默认值是 75 秒,有些浏览器最多只保持 60 秒,因此能够设定为 60 秒。若将它设置为 0,就禁止了 keepalive 链接。网络
客户端请求头部的缓冲区大小,这个能够根据你的系统分页大小来设置,通常一个请求的头部大小不会超过1k,不过因为通常系统分页都要大于1k,因此这里设置为分页大小。分页大小能够用命令getconf PAGESIZE取得。socket
timewait 的数量,默认是180000。tcp
容许系统打开的端口范围。ide
启用timewait 快速回收。函数
开启重用。容许将TIME-WAIT sockets 从新用于新的TCP 链接。
开启SYN Cookies,当出现SYN 等待队列溢出时,启用cookies 来处理。
web 应用中listen 函数的backlog 默认会给咱们内核参数的net.core.somaxconn 限制到128,而nginx 定义的NGX_LISTEN_BACKLOG 默认为511,因此有必要调整这个值。
每一个网络接口接收数据包的速率比内核处理这些包的速率快时,容许送到队列的数据包的最大数目。
系统中最多有多少个TCP 套接字不被关联到任何一个用户文件句柄上。若是超过这个数字,孤儿链接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS ***,不能过度依靠它或者人为地减少这个值,更应该增长这个值(若是增长了内存以后)。
记录的那些还没有收到客户端确认信息的链接请求的最大值。对于有128M 内存的系统而言,缺省值是1024,小内存的系统则是128。
时间戳能够避免序列号的卷绕。一个1Gbps 的链路确定会遇到之前用过的序列号。时间戳可以让内核接受这种“异常”的数据包。这里须要将其关掉。
为了打开对端的链接,内核须要发送一个SYN 并附带一个回应前面一个SYN 的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃链接以前发送SYN+ACK 包的数量。
在内核放弃创建链接以前发送SYN 包的数量。
如 果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2 状态的时间。对端能够出错并永远不关闭链接,甚至意外当机。缺省值是60 秒。2.2 内核的一般值是180 秒,3你能够按这个设置,但要记住的是,即便你的机器是一个轻载的WEB 服务器,也有由于大量的死套接字而内存溢出的风险,FIN- WAIT-2 的危险性比FIN-WAIT-1 要小,由于它最多只能吃掉1.5K 内存,可是它们的生存期长些。
当keepalive 起用的时候,TCP 发送keepalive 消息的频度。缺省是2 小时。