Nginx 优化策略

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

优化策略

全局配置优化

  • 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次,服务器就被认为是不可用的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值