在 Ubuntu 上的 Nginx 高并发配置实践

在 Ubuntu 上的 Nginx 高并发配置实践

💡 原文中文,约1400字,阅读约需4分钟。
📝

内容提要

本文分享了在2核2G的Ubuntu上对Nginx进行高并发配置的经验。主要调整包括修改Linux文件打开数限制、Nginx配置文件及内核参数,以支持更高的并发连接。建议重启系统以应用内核参数更改。

🎯

关键要点

  • 在2核2G的Ubuntu上配置Nginx以支持高并发。
  • 请求量每秒1千3,但并发量可达3千,因后端业务处理时间导致连接维护。
  • 调整Linux文件打开数限制以支持更多并发连接,修改/etc/security/limits.conf文件。
  • 设置www-data用户的软限制和硬限制为1048576。
  • 修改/etc/systemd/system.conf文件,设置DefaultLimitNOFILE为65535:524288。
  • 在/etc/sysctl.conf文件中添加fs.file-max和vm.max_map_count的配置。
  • 编辑Nginx配置文件,设置worker_rlimit_nofile和worker_connections的值。
  • 建议重启系统以应用内核参数更改,或使用sysctl -p命令。
  • 通过ps命令和/proc/[pid]/limits检查Nginx进程的文件打开数限制。

延伸问答

如何在 Ubuntu 上配置 Nginx 以支持高并发?

在 Ubuntu 上配置 Nginx 以支持高并发,需要调整 Linux 文件打开数限制、Nginx 配置文件及内核参数,具体包括修改 /etc/security/limits.conf、/etc/systemd/system.conf 和 /etc/sysctl.conf 文件。

为什么请求量和并发量不一致?

请求量每秒 1300,但并发量可达 3000,原因是后端业务处理时间导致 Nginx 需要维护连接等待响应。

如何检查 Nginx 进程的文件打开数限制?

可以通过 ps 命令找到 Nginx 进程编号,然后查看 /proc/[pid]/limits 文件,检查 Max open files 的限制。

在配置 Nginx 时需要设置哪些参数?

需要设置的参数包括 worker_rlimit_nofile 和 worker_connections 的值,以及根据后端服务调整请求头和请求体的大小。

修改内核参数后需要重启系统吗?

建议重启系统以应用内核参数更改,或者可以使用 sysctl -p 命令在不重启的情况下应用更改。

如何调整 Linux 的文件打开数限制?

可以通过编辑 /etc/security/limits.conf 文件,设置 www-data 用户的软限制和硬限制为 1048576,来调整文件打开数限制。

➡️

继续阅读