优化策略
全局配置优化
worker_processes auto;:指定工作进程的数量,利用多核处理能力提高并发worker_cpu_affinity auto;:将Nginx进程绑定到特定CPU核心,减少CPU上下文切换- Nginx Event模块使用epoll模型,实现非阻塞I/O,提高并发连接处理效率
epoll模型
epoll是Linux下多路复用IO接口,相比传统的select和poll,epoll更加高效,能够处理更多的并发连接。它使用事件通知方式,应用程序可以一次性注册多个文件描述符(FD),当有IO事件发生时,只通知那些真正活跃的FD,减少了不必要的轮询,大大提高了性能。Nginx use epoll默认工作在边缘触发这种工作模式
http配置优化
- 格式化日志输出为json格式,方便收集并进行监控;
- 超时时间优化:
- reset_timedout_connection on;:连接超时后,不再等待客户端的应答,而是直接向客户端发送RST包来重置连接
- keepalive_timeout 25;:默认的75秒改为25秒,减少服务器上空闲连接的数量,释放资源并提高服务器的性能和效率
- resolver_timeout 6;:DNS解析的超时时间,确保Nginx不会因长时间等待DNS解析而消耗过多资源或导致请求失败
- client_header_timeout 10;:设置客户端在发送请求头时的超时时间。如果在这个时间内客户端没有发送完请求头,Nginx会返回“408 Request Time-out”错误。调整参数有助于减少恶意请求或客户端故意阻塞服务器的攻击
- client_body_timeout 20; :设置读取客户端请求主体数据的超时时间
upstream配置优化
- 由被动健康检查改为主动健康检查
主动健康检查
check interval=5000 rise=2 fall=3 timeout=1000;
Interval:向后端发送的健康检查包的间隔是5000ms
rise:如果连续成功次数达到2次,服务器就被认为是可用的
fall:如果连续失败次数达到3次,服务器就被认为是不可用的

本文详细介绍了Nginx的优化策略,包括全局配置优化,如指定工作进程数量、绑定CPU核心、使用epoll模型提高并发处理效率。在http配置中,优化了日志格式、超时时间等参数。对于upstream配置,引入了主动健康检查以提升服务器稳定性。应对突发流量方面,通过ngx_http_limit_req_module和lua-resty-limit-traffic实现基于连接速率和频率的限流,以及基于并发连接数的限制,有效保护服务器资源,防止恶意流量攻击。
最低0.47元/天 解锁文章
1083

被折叠的 条评论
为什么被折叠?



