主要优化以下几点,修改nginx.conf文件
一、优化 worker_processesworker_processes 8; // 根据CPU核数配置,让nginx充分利用多核cpu发挥最大效能 worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
二、优化IO模型
nginx的连接处理机制在于不同的操作系统会采用不同的I/O模型,Linux下,nginx使用epoll的I/O多路复用模型,在freebsd使用kqueue的IO多路复用模型,在solaris使用/dev/pool方式的IO多路复用模型,在windows使用的icop等等。 要根据系统类型不同选择不同的事务处理模型,我们使用的是Centos,因此将nginx的事件处理模型调整为epoll模型。
events { worker_connections 10240; // use epoll; }
说明:在不指定事件处理模型时,nginx默认会自动的选择最佳的事件处理模型服务。
三、设置work_connections 连接数
worker_connections 10240;
四、设置每个进程的最大文件打开数
worker_rlimit_nofile 65535; # 一般等于ulimit -n系统值
五、设置keepalive timeout会话保持时间
keepalive_timeout 60;
六、优化GZIP压缩性能
gzip on; #表示开启压缩功能 gzip_min_length 1k; #表示允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取。默认值是0,表示不管页面多大都进行压缩,建议设置成大于1K。如果小于1K可能会越压越大 gzip_buffers 4 32k; #压缩缓存区大小 gzip_http_version 1.1; #压缩版本 gzip_comp_level 6; #压缩比率, 一般选择4-6,为了性能gzip_types text/css text/xml application/javascript; #指定压缩的类型 gzip_vary on; #vary header支持
七、设置proxy超时
proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k
八、开启高效传输模式
sendfile on; # 开启高效文件传输模式。 tcp_nopush on; #需要在sendfile开启模式才有效,防止网路阻塞,积极的减少网络报文段的数量。将响应头和正文的开始部分一起发送,而不一个接一个的发送。
在linux内核系统上运行的nginx除了优化nginx设置外,还需要对linux底层内核进行优化以应对处理高并发请求。
九、linux内核参数优化
这些参数追加到/etc/sysctl.conf,然后执行sysctl -p 生效。
1)调节系统同时发起的tcp连接数
net.core.somaxconn = 2621442)允许等待中的监听
net.core.somaxconn = 4096
3) tcp连接重用net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1
4)不抵御洪水攻击
net.ipv4.tcp_synCOOKIEs = 0 net.ipv4.tcp_max_orphans = 262144 #该参数用于设定系统中最多允许存在多少TCP套接字不被关联到任何一个用户文件句柄上,主要目的为防止Ddos攻击5)最大文件打开数
在命令行中输入如下命令,即可设置Linux最大文件打开数。
ulimit -n 30000
网友回复
为啥所有的照片分辨率提升工具都会修改照片上的图案细节?
js如何在浏览器中将webm视频的声音分离为单独音频?
微信小程序如何播放第三方域名url的mp4视频?
ai多模态大模型能实时识别视频中的手语为文字吗?
如何远程调试别人的chrome浏览器获取调试信息?
为啥js打开新网页window.open设置窗口宽高无效?
浏览器中js的navigator.mediaDevices.getDisplayMedia屏幕录像无法录制SpeechSynthesisUtterance产生的说话声音?
js中mediaRecorder如何录制window.speechSynthesis声音音频并下载?
python如何直接获取抖音短视频的音频文件url?
js在浏览器中如何使用MediaStream与MediaRecorder实现声音音频多轨道混流?