nginx.conf常用配置

一、全局配置

user username groupname

运行用户及用户组

worker_processes auto

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

pid log/nginx.pid

进程pid的存放位置

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

设置日志打印位置

server_tokens off

隐藏版本号

二、event相关

events {
    worker_connections 4096;
}

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

worker_connections 4096

一个worker能够同时打开的最大连接数,该值最大为workerrlimitnofile的值

  • 在nginx作为http服务器时,最大连接数为workerprocesses * workerconnections

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

三、缓冲区相关配置

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

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

猜你喜欢

转载自blog.csdn.net/sonofelice_mm/article/details/79401003