NGINX优化

    科技2024-06-09  79

    说明

    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

    Processed: 0.009, SQL: 8