目录
1更改进程数与连接数
(1)进程数
(2)连接数
2,静态缓存功能设置
(1)设置静态资源缓存
(2)验证静态缓存
3,设置连接超时
4,日志切割
(1)编写脚本
(2)执行/opt/fenge.sh测试日志文件是否被切割
5,配置网页压缩
二,nginx的深度监控
1,GoAccess简介
(1)GoAccess安装
安装编译依赖
安装中文字体支持
源码编译安装GoAccess
(2)配置中文环境
设置系统locale为中文
验证locale是否生效
(3)GoAccess生成中文报告
(4)测试访问
2,nginx vts简介
(1)nginx vts安装
(2)nginx配置开启vts
(3)测试访问
先安装nginx(1.26.3版)略
1更改进程数与连接数
(1)进程数
在高并发环境中,需要启动更多的Nginx进程以保证快速响应,用以处理用户的请求,避免造成阻案。使用psaux命令查看Nginx运行进程的个数。从命令执行结果可以看出msterprocess是ginx的主进程,开启1个:workerprocess是子进程,子进程也是开启了1个。修改Nginx的配置文件的workerprocesses参数,一般设为CPU的个数或者核数,在高并发的情况下可设置为CPU个数或者核数的2倍,可以查看CPU的核数以确定参数
修改完后,重启服务,使用ps aux查看运行进程数的变化情况。从下面执行结果中可以看出开启了1个主进程和4个子进程,参数设置起到了作用。
参数设置为4,和PU的核数相同。运行进程数多一些,响应客户访问请求时,Nginx就不会临时启动新的进程提供服务,减少了系统的开销,据升了服务速度。
默认情况下,Nginx的多个进程可能更多的跑在一颗CPU上。为了充分利用硬件多核务CPU,可以分配不同的进程给不同的CPU处理。在一台4CP服务器上,可以设置每个进程分别由不同的CPU核心处理,达到CP的性能最大化。
(2)连接数
单个Worker进程最大并发连接数
2,静态缓存功能设置
当Nginx将网页数据返回给客户端后,可设置缓存时间,以便在日后进行相同内容的请求时直接返回,以避免重复请求,加快访问速度。缓存时间一般针对静态资源进行设置,对动态网页不用设置缓存时间。
(1)设置静态资源缓存
nginx -t
nginx -s reload
(2)验证静态缓存
通过浏览器查看,响应头中包含字段即为缓存成功
3,设置连接超时
在企业网站中,为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现控制连接访问时间。可以修改配置文件einx.conf,设置keepalive_timeout 超时时间。
keepalive timeout
第一个参数指定了与客户端的keep-alive连接超时时间,服务器将会在这个时
间后关闲连接。
可选的第二个参数指定了在响应头Keep-Alive:timeout=time中的time 值。这个头能够让一些浏览器主动关团连接,这样服务器就不必去关闭连接了。没有这个参数,Nginx不会发送Keep-Alive 响应头。
4,日志切割
随着Nginx运行时间的增加,产生的日志也会逐渐增加,为了方便掌握ginx的运行状态,需要时刻关注Nginx日志文件。太大的目志文件对监控是一个大灾难,不便于分析排查,需要定期的进行日志文件的切割。Nginx没有类似Apache的cron1og日志分割处理功能,但是可以通过N8inx的信号控制功能脚本来实现口志的自动切制,并将脚本加入到Linux的计划任务中,让脚本在每天的固定时间执行,便可实现目志切割功能。下面是具体操作步骤、
(1)编写脚本
/opt/fenge.sh,把Nginx的日志文件/usr/localnginx/logs/access,log 移动到目录/var/log/nginx下面,以当前时间做为目志文件的名称,然后用ki1USR1 创建新的日志文件/usr/local/nginx/1ogs/access.log,最后删除 30 天之前的日志文件。
(2)执行/opt/fenge.sh测试日志文件是否被切割
添加crontab -e任务(每天凌晨1:30执行/opt/fenge.sh脚本,进行日志分割)
5,配置网页压缩
Nginx的nexhtp_gzipmodule 压缩模块提供了对文件内容压缩的功能,允许Nginx服务器将输出内容发送到客户端之前进行压缩,以节约网站的带宽,提开用户的访问体验。默认Nginx已经安装该模块,只需要在配置文件中加入相应的压缩功能参数对压缩性能进行优化即可。
Nginx -t
Nginx -s reload
注释
82ipon;: | 开启Gip 压缩功能。 |
Bzipbuffers464k;: | 设置用于压缩响应的缓冲区数量和大小,这里表示分配4个64KB的缓冲区。 |
gzip_http_wersion1.1;: | 指定启用Gzip压缩的 HTTP 协议版本,这里是HTTP 1.1 |
gzip_comp 1eve12;: | 设置Gzip压缩的级别,范田是!到9,2表示相对较低的理缩级别(里缩速度快,压缩比相对低)。 |
gzip_min_engthlk;: | 指定当响应内容长度大于等于1KB时才进行Gzip 压缩。 |
gzip_vary on;: | 向代理服务器发送Vary:AcceptEncodi08 头信息,让代 IE类型的内容进行Czi上缩 理服务器根据客户端的ccept-Encoding 大来决定是否缓存压缩后的内容。 |
gzip types textplain text/javascript application/x javascript te xt/css text/xmlapplicationxmlapplication/xml+rss;: | 指定对哪些MIME类型的内容进行Gzip压缩 |
在ginx工作目承建立一个超过1K大小的htm!文件,然后使用浏览器访问网址验证,显示使用的进行了压缩,
-I:该参数的作用是只获取服务器返回的HTTP头部信息,而不获取响应的主体肉容。-H:此参数
用于在请求中添加自定义的HTTP头部信息。在这个例子里,加的头部信息是Accept-Encoding;gzip,这表示客户端(也就是发起请求的一方)支持gzp压缩格式的响应内容。
二,nginx的深度监控
1,GoAccess简介
GoAccess是一个开源实时日志分析器和交式查看器,可在Linux系统上的终端中或通过沟览器运行。它为需要动态可视化服务器报告的系统管理员
提供快速且有价值的HTIP统计信息。
GoAccess解析指定的Web日志文件并将数据输出到X终,特点包括:完全实时:所有面板和指标都定时在终端输出上每200毫秒更新一次,在HTM上输出上每秒更新一次
所需的最少配置:您只面针对访间日志文件运行它,选择日志格式,然后让GAccess解新访间日志并向您显示统计信息。
跟踪应用程序响应时间。跟踪处理请求所花费的时间。如果您想跟踪减慢网站速度的灾面,则非常有用。
几小所有Web日志格式:GoAccess允许任何自定义日志格式字符串。预定义选坝包摺 ApBche,Nginx,hmszon s3,Elastic Load Balancing、CloudFront.增量日志处理:需要数据持久化?GoAccess能够通过磁盘持久性选项增量处理日志。
GaAccess只有一个依赖项:是用写的。要运行它,您只需要ncurses作为依赖项。就是这样。它甚至拥有自己的WebSocket服务器http://gwsocket,10/
访问者:按小时或日期确定点击量、访问者、带宽和最慢运行请求的指标。每个虚拟主机的指标:拥有多个虚报主机(服务器块)?它有一个面板,显示哪个虚拟主机消耗了大部分Teb服务器资源。
(1)GoAccess安装
安装编译依赖
安装中文字体支持
源码编译安装GoAccess
--enable-utf8:启用Unicode 支持(显示中文必备)
--with-openssl:支持 HTTPS 日志分析。
(2)配置中文环境
设置系统locale为中文
验证locale是否生效
(3)GoAccess生成中文报告
--output=report.html:生成 HTML 报告。
--real-time-html:实时更新报告。
(4)测试访问
浏览器访问http://你的 ip/report.html
2,nginx vts简介
Nginx的VTS模块(Virtual Host Traffic Status) 是一个开源监控工具,用于实时收集和分析Nginx的流量、性能指标及状态数据。以下是其核心功能和特点:
实时监控 | 统计每个虚拟主机(server 块)的请求量(QPS)、带宽使用、响应时间、连接数 等关键指标。支持按状态码(如2xx、4xx、5xx)分类统计请求。 |
数据可视化 | 提供内置监控页面(默认路径/status),通过图表和表格展示实时及历史数据。支持JSON格式输出,方便集成到Prometheus、Grafana等监控平台。 |
扩展性 | 通过Lua 脚本扩展自定义监控逻辑(如记录特定API的响应时间)。 可配置 数据存储策略(如保留最近1小时的数据)。 |
报警集成 | 结合阈值规则触发告警(需配合外部工具如Zabbix、TelegramBot)。 |
(1)nginx vts安装
需要重新编译nginx并扩展vts模块
(2)nginx配置开启vts
修改nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
(3)测试访问
浏览器访问http://你的ip/vts