Nginx 实战系列之二:Nginx 优化中在 Nginx 侧 和 Linux 系统侧必须要调整优化的参数详细和最佳推荐配置

简介: Nginx 实战系列之二:Nginx 优化中在 Nginx 侧 和 Linux 系统侧必须要调整优化的参数详细和最佳推荐配置

Nginx 实战系列之二:Nginx 优化中在 Nginx 侧 和 Linux 系统侧必须要调整优化的参数详细和最佳推荐配置

Nginx 必须要调整优化的参数

Nginx Server 侧必须要调整的参数

Nginx 必须要调整的参数以及线上推荐的最优配置:

backlog=8192;
worker_processes     auto;  
worker_rlimit_nofile 10240; 
worker_connections 10240;
tcp_nopush  on;
tcp_nodelay on;
keepalive_timeout  300s;     
keepalive_requests 1000000;

建议其他调整的参数:

proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;

Linux 系统侧必须要调整的参数

网卡软中断绑定

Nginx 的机器,一般都是独立的机器,因此不建议采用默认 irqbalance 的自动绑定,而是要设置 smp_affinity、smp_affinity_list 的值来自动绑定。

非常关键的一点,就是不能重复绑定,网卡队列和 CPU 一定要一对一绑定,一般来说就是一个队列要绑定一个 CPU。对于万兆网卡,如果队列数超过了 CPU 核数,那么我们可以把网卡队列数调整为 CPU 核数,然后一对一绑定;一定要注意,通过 一个网卡队列需要并只能绑定到一个 CPU 上,不能绑定到多个 CPU 上,否则不会生效。

Linux nf_conntrack 参数

Linux nf_conntrack 是 Linux 网络相关的核心参数,sysctl 可以查看 conntrack 相关的所有数据:

sysctl -a | grep conntrack
  • • 对应 Nginx 的机器 conntrack 一般需要设置 nf_conntrack_max 为 100-200w,而 nf_conntrack_buckets 为 1/4 或者 1/2 倍 nf_conntrack_max,防止桶太大导致性能影响。
  • • 一般设置 nf_conntrack_tcp_timeout_time_wait 为 120,避免值过大从而维护的连接数太多而超过限制,超过连接数的上限后会丢包
  • • 一般设置 hashsize 不能太大,避免在连接数过多时出现较多的 hash 冲突,一般设置为 2-5w 左右,echo 20000 > /sys/module/nf_conntrack/parameters/hashsize

backlog 队列

  • • net.core.somaxconn
  • • 每一个端口最大的 Listen 监听队列的长度。如果这个设置太小从而导致了 Nginx 性能问题的话,我们可以查看内核日志发现这个状态。这个最终需要配合 Nginx listen 指令一起调整
  • • tcp_max_syn_backlog
  • • SYN(待完成连接)队列长度
  • • net.core.netdev_max_backlog
  • • 数据包在发送给 CPU 之前被网卡缓冲的速率;增加该值可以提高具有高带宽的机器的性能

Nginx 机器的推荐设置如下:

echo 32768 > /proc/sys/net/core/somaxconn
echo 819200 > /proc/sys/net/ipv4/tcp_max_syn_backlog

fs 文件描述符

  • • sys.fs.file-max
  • • Linux 系统允许的最大文件描述数,值的大小主要和机器内存有关,一般 32G 内存以上的机器,一般推荐设置为 100w-300w。
  • • nofile
  • • 应用层面允许的最大文件描述符数,一般设置 /etc/security/limits.conf文件

port 端口

  • • net.ipv4.ip_local_port_range
  • • port 端口的范围[net.ipv4.ip_local_port_range=1024 65535]
  • • 对压测端而言,如果是短链接
  • • 表示开启 TCP 连接中 TIME-WAIT sockets 的快速回收,默认为0,表示关闭。压测 client 端需要开启。
  • 对应 Nginx server 端,这个 tcp_tw_recycle 则要设置为 0
  • • 表示开启端口复用。允许将TIME-WAIT sockets重新用于新的 TCP接,默认为0,表示关闭;
  • • net.ipv4.tcp_tw_reuse = 1
  • • net.ipv4.tcp_tw_recycle = 1


相关文章
|
7月前
|
编解码 应用服务中间件 Linux
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
616 1
|
7月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
406 18
|
7月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
671 17
|
8月前
|
数据建模 应用服务中间件 PHP
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
本示例演示如何通过Docker挂载同一宿主目录至Nginx与PHP容器,实现PHP项目运行环境配置。需注意PHP容器中监听地址修改为0.0.0.0:9000,并调整Nginx配置中fastcgi_pass指向正确的IP与端口。同时确保Nginx容器中/var/www/html权限正确,以避免访问问题。
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
|
9月前
|
应用服务中间件 网络安全 nginx
配置Nginx以支持Websocket连接的方法。
通过上述配置,Nginx将能够理解WebSocket协议的特殊要求,代理Websocket流量到合适的后端服务器。注意,Websocket并不是HTTP,尽管它最初是通过HTTP请求启动的连接升级,因此保证Nginx了解并能够妥善处理这种升级流程是关键。
1948 10
|
8月前
|
Ubuntu 应用服务中间件 Linux
在Ubuntu上配置Nginx实现开机自启功能
至此,Nginx应该已经被正确地设置为开机自启。在Ubuntu中利用 `systemd`对服务进行管理是一种高效的方式,为系统管理员提供了强大的服务管理能力,包括但不限于启动、停止、重启服务,以及配置服务的开机自启动。通过这些简洁的命令,即使是对Linux不太熟悉的用户也能轻松地进行配置。
390 0
|
10月前
|
安全 应用服务中间件 网络安全
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
710 0
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
|
7月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
811 1
二、Linux文本处理与文件操作核心命令
|
7月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
470 137

热门文章

最新文章

下一篇
开通oss服务