返回首页

Nginx 几个调优配置

几个用得上的 Nginx 调优项:worker、文件描述符上限、TCP 选项。

发布 2019年2月15日 标签 #linux #nginx

~/posts/nginx-tuning $ cat post.md

/ 语言 EN / 中文
/ 主题 / /

范围

Nginx 是模块化的,可以靠分别配置几个模块来”调优”它的表现。这与其说是优化,不如说是把项目的取向告诉 Nginx。

这篇基于上一篇 用 Nginx 反向代理 Node 服务 里的配置作为起点。

全局

有几个全局选项值得注意:

  • worker_processes auto;
  • worker_rlimit_nofile 4864;

worker_processes 是启用的进程数,最简单的做法是保持 auto,让 Nginx 根据 CPU 核心数自动决定。

worker_rlimit_nofile 是单个 worker 可以打开的文件数上限,可以拉到系统的上限。4864 是我 mac 上的数值。如果项目里要打开大量文件(比如反代非常多的小文件资源),这个值就值得调。

HTTP 模块

HTTP 模块里可配的项不少,但大多对”性能”帮助有限,更多是让 Nginx 适配项目的需求。两个常用的:

  • tcp_nopush on;
  • tcp_nodelay on;

tcp_nopush 让 Nginx 把所有 header 打到一个包里再发出去——大部分时段开着合适。 tcp_nodelay 让 Nginx 不缓存包,立刻发出——项目对实时性要求高时再开。

返回首页