说明
NGINX优化 = 内核参数优化(文件描述符与TCP握手及挥手优化等) + NGINX配置参数优化
内核优化
请见之前的文档 linux内核优化 - 文件描述符 https://blog.csdn.net/oToyix/article/details/108739786
centos7 内核参数优化 https://blog.csdn.net/oToyix/article/details/108949357
NGINX配置文件参数优化
nginx 配置优化
############
worker_processes
8;
worker_cpu_affinity
00000001 00000010 00000100 00001000 00010000 0010000 01000000 10000000;
worker_rlimit_nofile
102400;每个工作进程能打开的文件数,跟ulimit
-n一致
use epoll
;异步多步复用IO的模式,IO请求
,select 模型是apache使用的,需要遍历所有句柄,epoll则不需要
worker_connections
10000;每个工作进程并发处理数
单台机器支持的最大并发数
10000 * worker_processes数
multi_accept on
;尽可能多的接受请求
autoindex on
;开启目录列表访问,适合下载服务器
tcp_nopush on
; 防止网络阻塞
以上是并发优化
keepalive_timeout
65;客户端到服务端的连接持续有效时间
tcp_nodelay on
;提高数据的实时响应性
gzip on
; 开启gzip压缩
gzip_min_length
1k
;
gzip_buffers
4 128k
; 压缩缓冲区大小,最小
4k,最大
128k
gzip_http_version
1.1;压缩版本
gzip_comp_level
4;压缩级别大小,最大为
9,值越小,压缩比例越小,cpu处理更快,值越大,消耗cpu比较高
,如果静态文件
100k,值为
9,将压缩后大小为
10k
gzip_types text
/plain application
/javascript text
/css application
/xml
;
注:
1、text
/plain为普通文本文件,主要看下面文件是否存在
2、类型在
/usr
/local
/nginx
/conf
/mime
.types文件定义的
gzip_vary on
;
client_max_body_size
10m
;允许客户端请求的最大单文件字节数
client_body_buffer_size
128k
; 缓冲区代理缓冲用户请求的最大字节数
proxy_connect_timeout
300;nginnx跟后端服务器连接超时时间(代理连接超时)
proxy_send_time
300;后端服务器数据加传时间(代理发送超时)
proxy_read_timeout
300;连接成功后,后端服务器响应时间
(代理接收超时
)
以上时间一致
proxy_buffer_size
4k
;设置代理服务器
(nginx
)用户头信息的缓冲区大小
proxy_buffer
4 32k
;缓冲区,网页平均在
32k以下的话,这样设置
proxy_busy_buffers_size
64k
;高负荷下缓冲大小
(proxy_buffer
* 2)
设定请求缓冲
large_client_header_buffers
4 4k
;
client_header_buffer_size
4k
;
#客户端请求头部的缓冲区大小,这个可以根据你的系统分布大小来设置,一般一个请求的头部大小不会超过
1k
#不过由于一般系统分页都要大于
1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE获取
open_file_cache max
=102400 inactive
=20s
;
这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存
open_file_cache_valid
30s
;这个是指多长时间检查一次缓存的有效信息
open_file_cache_min_users
1;
#open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直在缓存中打开的,如上例,如果有一个文件在inactive
include vhosts
.conf
;引用其他配置文件
expires
30d
; 用户浏览器缓存静态文件的时间为
30天
-----------------end