nginx.conf经常使用配置解析

1、全局配置

user username groupname

运行用户及用户组html

worker_processes auto

启动进程,一般设置成和cpu数量相等的一个数值,默认为1。能够设置为auto,这样nginx会自动根据本机的cpu内核数生成对应数量的worker进程。能够经过lscpu命令肯定可用的核心数。nginx

pid log/nginx.pid

进程pid的存放位置后端

error_log log/error.log warn;
error_log log/info.log info;

设置日志打印位置服务器

server_tokens off

隐藏版本号代理

2、event相关

events {
    worker_connections 4096;
}

events模块包含了nginx有关链接处理的配置。日志

worker_connections 4096

一个worker可以同时打开的最大链接数,该值最大为workerrlimitnofile的值code

  • 在nginx做为http服务器时,最大链接数为workerprocesses * workerconnectionsserver

  • 在nginx做为反向代理服务器时,最大链接数为workerprocesses*workerconnections/2htm

3、缓冲区相关配置

请求缓冲区在NGINX请求处理中起着重要做用。 在接收到请求时,NGINX将其写入这些缓冲区。 这些缓冲区中的数据可做为NGINX变量使用,例如$request_body。 若是缓冲区与请求大小相比较小,则数据将写入磁盘上的文件,所以将涉及I/O操做。 NGINX提供了能够改变请求缓冲区的各类指令。blog

client_header_buffer_size 8k

它为请求头分配一个缓冲区。 若是请求头大小大于指定的缓冲区,则使用largeclientheader_buffers指令分配更大的缓冲区。

client_max_body_size 130m

此指令设置NGINX能处理的最大请求主体大小。 若是请求大于指定的大小,则NGINX发回HTTP 413(Request Entity too large)错误。 若是服务器处理大文件上传,则该指令很是重要。

proxy_buffer_size   64k

1 解决后端服务传输数据过多,实际上是header过大的问题,参考博客

2 后端服务器的相应头会放到proxybuffersize当中,这个大小默认等于proxybuffers当中的设置单个缓冲区的大小。 proxybuffersize只是响应头的缓冲区,没有必要也跟着设置太大。 proxybuffer_size最好单独设置,通常设置个4k就够了。

proxy_buffers   8 64k

1 若某些请求的响应过大,则超过buffers的部分将被缓冲到硬盘(缓冲目录由temppath指令指定), 固然这将会使读取响应的速度减慢, 影响用户体验. 可使用proxymaxtempfile_size指令关闭磁盘缓冲  

2 proxybuffers的缓冲区大小通常会设置的比较大,以应付大网页。 proxybuffers当中单个缓冲区的大小是由系统的内存页面大小决定的,Linux系统中通常为4k。 proxy_buffers由缓冲区数量和缓冲区大小组成的。总的大小为number*size

相关文章
相关标签/搜索