当前位置:首页 > 技术文章 > 正文内容

Nginx - 调优 nginx怎么优化

arlanguage5个月前 (12-18)技术文章34

  • worker调优
    worker是Nginx的进程,一个worker理论上可以处理几万个请求,为了更好利用Nginx的缓存机制,让worker运行在固定的CPU上,从而减少worker切换CPU时造成的性能消耗。worker的数量并不是越多越好,worker的数量一般配制与物理CPU的物理核心数相同。

  • CPU在LINUX的编号
    CPU物理核心编号由一个8位的二进制串表示,0000 0001表示第一个物理核心,0000 0010表示第二个核心,0000 0100表示第三个物理核心。第八号物理核心表示为1000 0000。

  • Nginx 配制worker与CPU绑定
    nginx.conf 配制如下
worker_processes 2;
worker_cpu_affinity 0001 0010;

将两个worker绑定在第一、二个CPU物理核心上。


  • worker nice值的调整(worker进程的优先级调整)
    worker的优先级是通过worker_priority参数调整的,其取值范围为[-20, 20]。
worker_processes 2;
worker_cpu_affinity 0001 0010;
worker_priority 19;

虽然worker的nice值最大为20,实际上只以到达19,当超出20这个值时,用nginx -t进得测试已经报出配制异常,但nginx仍然能以19的优先级启动。


  • worker_rlimit_number调优
    worker_rlimit_number,用于限制nginx单个进程最大的并发量。假设2个worker最大并发量为3W,那么单个worker的并发量为1.5W。这里worker_rlimit_number应该调整为15000

注意:默认情况下,此参数不在nginx.conf文件里出现,需要手动添加配置。

配置如下:

worker_processes 2;
worker_cpu_affinity 0001 0010;
worker_priority 19;
worker_rlimit_number 15000;
  • event事件驱动相关配制
events{
  worker_connections 102400;
  accept_mutex on | off;
}

worker_connections:每个worker支持的最大连接并发量。
如果accept_mutex设置成on,则请求由各worker轮流处理。如果设置成off,则一个请求过来,会通知所有的worker,哪个worker处理的请求少,则由哪个worker处理请求。因为accept_mutex值为off时,会通知所有的worker,因此比较消耗性能。

  • server模块相关配制
    server_tokens
    server_tokens在http模块或server模块里设置。在http模块设置,则作用于所有server模块。在server模块设置,则只作用于单个server模块。当server_tokens的值为off时,将不对外暴露nginx版本信息,有利于避开不良用户针对nginx不对版本的漏洞攻击
http{
  server_tokens off;
}

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/291.html

分享给朋友:

“Nginx - 调优 nginx怎么优化” 的相关文章

使用Keepalived实现Nginx的自动重启及双主热备高可用

推荐阅读:20年清华架构师耗时整整一百天打造1000+道Java高频面试手册1、概述之前我们使用Keepalived实现了Nginx服务的双机主备高可用,但是有几个问题没有解决,今天一起探讨一下。1)在双机主备机制中,Keepalived服务如果宕了,会自动启用备机进行服务,但Nginx服务如果负载...

Nginx安装与调优部署文档(WinServer)

1. 安装环境准备1.1 部署规划软件安装路径 E:\nginx软件日志路径 E:\nginx\logs软件主配置文件路径 E:\nginx\conf软件子配置文件路径 E:\nginx\conf\conf.d软件站点配置路径 E:\nginx\html端口规划 802. Nginx安装部署2.1...

Nginx如何实现四层负载均衡

静态负载均衡Nginx的四层静态负载均衡需要启用ngx_stream_core_module模块,默认情况下,ngx_stream_core_module是没有启用的,需要在安装Nginx时,添加--with-stream配置参数启用,如下所示。./configure --prefix=/usr/l...

容器中Nginx高并发参数调优实战 nginx并发量过高怎么处理

在容器化的微服务架构中,Nginx作为反向代理和负载均衡器,常常需要承担高并发访问的压力。当并发连接数超过Nginx可处理的上限时,就会出现新连接被丢弃的情况。本文将详细介绍如何发现和定位这个问题,并通过调整内核参数和Nginx配置来解决。一、问题现象某Web服务在高并发场景下,偶尔会出现部分请求无...

在AWS上组合使用ELB和Nginx Plus获得更多特性

使用AWS的客户经常问我们,对于负载均衡,到底是使用AWS的ELB还是Nginx Plus?Amazon曾经发布了一个白皮书来说明如何在AWS上配置Nginx Plus。本文将聚焦在选择Nginx Plus或者ELB时需要考虑的因素方面,也会讨论一些更适合于组合使用Nginx Plus和ELB的情形...

Linux 网络延迟排查方法 linux延迟10秒

在 Linux 服务器中,可以通过内核调优、DPDK 以及 XDP 等多种方式提高服务器的抗攻击能力,降低 DDoS 对正常服务的影响。在应用程序中,可以使用各级缓存、WAF、CDN 等来缓解 DDoS 对应用程序的影响。但是需要注意的是,如果 DDoS 流量已经到达 Linux 服务器,那么即使应...