Nginx性能优化与监控实战
笔记定位:面向运维/开发人员的实战手册,聚焦高并发场景下Nginx调优、全链路监控、故障排查,覆盖配置优化、内核调优、监控工具、压测验证全流程
一、Nginx基础架构与性能瓶颈预判
1.1 核心工作模式
-
多进程+异步非阻塞:master进程管理配置/信号,worker进程处理请求,默认采用epoll事件驱动模型,支持海量并发连接
-
瓶颈常见点:文件句柄不足、worker进程数不合理、连接数超限、IO阻塞、内核参数限制、静态资源缓存失效、反向代理超时
1.2 优化核心原则
-
先监控定位瓶颈,再针对性调优,避免盲目改参数
-
分层优化:内核层 → Nginx配置层 → 业务层 → 缓存层
-
压测验证:每次调优后用压测工具验证性能提升效果
二.Nginx配置层性能优化(核心)
1.修改用户和组
编译nginx时指定用户和组
- 在./configure后面指定用户与组的参数
修改nginx配置文件nginx.conf指定用户与组
更改进程数与连接数
进程数
- 高并发环境下,需启动更多 Nginx 进程快速响应请求
- 用ps aux查看进程
- master process(主进程)开 1 个
- worker process(子进程)一般也开 1 个
- 可修改配置文件中 worker_processes 参数,通常设为 CPU 个数或其 2 倍,需先查看 CPU 核数
nproc--显示当前系统可用的 CPU 核心数量
进入nginx的主配置文件nginx.conf
重启服务
ps aux 查看进程数
连接数
单个进程最大的并发连接数
vim /usr/local/nginx/conf/nginxconf
静态缓存功能设置
- Nginx 可给静态资源设置缓存时间,相同内容后续请求直接返回,加快访问速度;
- 动态网
- 页不用设缓存时间。
设置静态资源缓存
- 进入主配置文件
- 在cd/usr/local/nginx/html中添加图片
- 创建index.html
<html>
<body>
<h1>101</h1>
</body>
</html>
验证静态缓存
在浏览器中192.168.10.101/kgc.png

设置连接超时--keepalive_timeout
进入主配置文件
vim /usr/login/nginx/conf/nginx.conf
在http{ }下,server{ }上

日志切割
编写脚本
设置执行的权限
设置crontab任务,定期指向脚本进行日分割
配置网页压缩
- Nginx 的 ngx_http_gzip_module 模块可压缩文件,默认已安装,只需在配置文件中设置 gzip 开启、最小压缩字节数、缓存、HTTP 版本、压缩比、压缩类型、缓存服务器支持等参数,就能节约带宽、提升访问体验
修改主配置文件,加入压缩功能参数

在浏览器中 http://192.168.10.101/index.html

三.nginx的深度监控
解压数据包goaccess-1.7.2.tar.gz
核心监控指标
|
指标类型 |
核心指标 |
告警阈值 |
|---|---|---|
|
连接指标 |
活跃连接数、等待连接数、连接拒绝数 |
活跃连接数>80% worker_connections |
|
请求指标 |
QPS、请求耗时、5xx/4xx错误率 |
5xx错误率>1%,平均耗时>500ms |
|
资源指标 |
CPU使用率、内存占用、文件句柄数、磁盘IO |
CPU>90%,内存>85%,句柄数接近上限 |
GoAccess安装
安装依赖
dnf install -y gcc make ncurses-devel openssl-devel gettext-devel
安装中文字体支持
dnf install -y wqy-microhei-fonts
解压
进入
配置
./configure -enable-utf8 --with-openssl
编译安装
localectl
配置中文环境
设置系统Locale为中文
(依赖包
dnf install -y glibc-langpack-zh
localectl set-locale LANG=zh_CN.UTF-8)
验证Locale是否生效
locale
GoAccess生成中文报告
goaccess --log-format=COMBINED --output=/usr/local/nginx/html/report.html --real-time-html /usr/local/nginx/logs/access.log
回车后不要动了
测试访问
去浏览器:192.168.10.101/report.html

四.nginx vts简介
.nginx vts安装
tar xzf nginx-1.26.3.tar.gz
unzip nginx-module-vts-master.zip
cd nginx-1.26.3
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --add-module=/root/nginx-module-vts-master
make && make install
nginx配置开启vts
修改nginx配置文件
vim /usr/local/nginx/conf/nginx.conf


测试访问
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)