`

nginx记录分析网站响应慢的请求(ngx_http_log_request_speed)

阅读更多

nginx模 块ngx_http_log_request_speed可以用来找出网站哪些请求很慢,针对站点很多,文件以及请求很多想找出哪些请求比较慢的话,这个 插件非常有效.作者的初衷是写给自己用的,用来找出站点中处理时间较长的请求, 这些请求是造成服务器高负载的很大根源. 日志记录之后,在使用perl脚本分析日志,即可知道哪些请求需要修正.

1. 模块安装

nginx第三方模块安装方法,我们ttlsa.com已经说过很多次了,我这边不在重复了。
配置参数

./configure --prefix=/usr/local/nginx-1.4.1 --with-http_stub_status_module \
 --add-module=../ngx_http_log_request_speed

2. 指令log_request_speed

log_request_speed_filter
语法: log_request_speed_filter [on|off]
配置段: n/a
context: location, server, http
启动或禁用模块

log_request_speed_filter_timeout
语法: log_request_speed_filter_timeout [num sec]
默认: 5秒
配置段: location, server, http
这边并不是真正意义的超时,而是说当请求超过这边给定的时间,将会记录到nginx错误日志中. 默认值是5000微秒(5秒),如果一个请求小于5秒,这个请求不会被记录到日志中,但是如果超过5秒,那请求将会被记录到nginx的错误日志中

3. 使用实例

3.1 nginx配置

http{
      log_request_speed_filter on;
      log_request_speed_filter_timeout 3;
      ...
}

错误日志中记录的慢请求如下

nginx

nginx慢请求日志

3.2 日志分析

cd /usr/local/nginx-1.4.1/logs
wget http://wiki.nginx.org/images/a/a8/Log_Analyzer.tar.gz
tar -xzvf Log_Analyzer.tar.gz
cd request_speed_log_analyzer
# cat ../error.log | grep 'process request'| ./analyzer.pl -r
POST /wp-admin/admin-ajax.php HTTP/1.1 --- avg ms: 1182, value count: 2
GET /shmb/1145.html HTTP/1.1 --- avg ms: 2976, value count: 1 <--- THE WINNER

从日志中,我们发现这边有2条请求比较慢,最慢的是/shmb/1145.html ,而且还标示“THE WINNER”,作者你赢了。很幽默。

3.3 分析脚本语法

# ./analyzer.pl -h
-h : this help message # 显示帮助信息
-u : group by upstream # 按upstream分组
-o : group by host # 按主机分组
-r : group by request # 按请求分组,推荐这个

4. nginx测试版本

目前作者只在0.6.35和0.7.64下测试,不保证其他环境下可以使用。我当前的测试版本是1.4.1,目前使用正常,在使用前请大家先测试一下。

5. 结束语

首先很感谢作者写的这个简单实用的nginx插件,这个插件的目的不仅仅是记录请求的响应时间,而且是用来找出响应慢的请求。如果你的服务器上有大量的站点,或者大量的程序文件,但是访问量不高,负载却很高,你想找出是哪个请求慢,我想这个插件非常适合你。

参考地址
ngx_http_log_request_speed下载地址:http://wiki.nginx.org/images/7/78/Ngx_http_log_request_speed.tar.gz
ngx_http_log_request_speed脚本地址:http://wiki.nginx.org/images/a/a8/Log_Analyzer.tar.gz

分享到:
评论

相关推荐

    ngx_http_proxy_connect_module.zip

    ngx_http_proxy_connect_module是一个针对Nginx服务器的第三方模块,主要功能是支持HTTP代理的"CONNECT"方法。在默认情况下,Nginx仅处理HTTP和HTTPS请求,但不支持通过HTTP代理进行TCP连接,比如SSL/TLS隧道。这个...

    nginx限制连接数ngx_http_limit_conn_module模块1

    【Nginx 限制连接数 ngx_http_limit_conn_module 模块详解】 在互联网服务中,服务器经常面临流量异常、负载过大的情况,尤其在遭受大流量恶意攻击时,带宽的浪费、服务器压力的增大都会对业务造成严重影响。为了...

    Nginx模块ngx_realtime_request

    ngx_realtime_request是nginx用来统计虚拟主机流量的模块, 首先和大家说下这个模块是基于域名的,将会记录这个域名的请求量、发送字节、返回http状态码的数量,特性如下: 1、基于域名记录 2、记录请求数据量 3、...

    Nginx记录分析响应慢的请求及替换网站响应内容的配置

    nginx记录分析网站响应慢的请求(ngx_http_log_request_speed) nginx模块ngx_http_log_request_speed可以用来找出网站哪些请求很慢,针对站点很多,文件以及请求很多想找出哪些请求比较慢的话,这个插件非常有效.作者...

    ngx_http_dav_ext_module.so

    ngx_http_dav_ext_module.so centos7 nginx 1.18 可以作为模块加载

    ngx_devel_kit-0.3.0

    ngx_devel_kit(通常缩写为 NDK)是一个针对Nginx的模块开发工具集,它为构建自定义Nginx模块提供了便利。在Nginx生态系统中,NDK是一个重要的扩展工具,允许开发者利用C语言直接操作Nginx的内部结构,以实现更高级...

    Nginx的error_log和Access_log分析.docx

    access_log 指令用于记录访问日志,记录了每个请求的详细信息,包括客户端的 IP 地址、请求方法、请求 URL、响应状态码、响应时间等信息。access_log 指令可以在 Nginx 配置文件的多个级别中配置,包括主配置文件、...

    ngx_http_consistent_hash-master.zip

    "ngx_http_consistent_hash-master.zip" 是一个与 Nginx Web服务器相关的压缩包文件,其中包含了一个名为 "ngx_http_consistent_hash" 的第三方模块的源代码。"master" 指示这可能是该模块的主分支或最新版本。 **...

    ngx_http_mytest_module.zip_nginx_world

    在本文中,我们将深入探讨如何进行Nginx的模块二次开发,特别关注“ngx_http_mytest_module.zip_nginx_world”这个示例项目。这个压缩包包含了一个基础的Nginx自定义模块,可以视为模块开发的"Hello, World!"级别...

    ngx_lua_module-windows-1.1.2.0

    ngx_lua_module是一款强大的扩展模块,专为Nginx服务器设计,允许在Nginx配置文件中直接嵌入Lua脚本,极大地增强了Nginx的功能和灵活性。这个"ngx_lua_module-windows-1.1.2.0"是该模块的一个Windows版本,适应于...

    lua-upstream-nginx-module, Nginx C 模块将Lua向ngx_lua公开,用于 Nginx upstreams.zip

    lua-upstream-nginx-module, Nginx C 模块将Lua向ngx_lua公开,用于 Nginx upstreams 电子邮件名称ngx_http_lua_upstream - Nginx MODULE,用于向 Nginx upstreams公开Lua到 ngx_lua目录NAME状态概要说明函数get_...

    使用nginx作为http/https正向代理ipm包,包含ngx_http_proxy_connect_module 模块,第三方图片代理,带有缓存

    使用nginx作为http/https正向代理ipm包,包含ngx_http_proxy_connect_module 模块,附带了第三方图片代理配置,带有缓存,可直接做图片服务器 下载后执行:rpm -ivh nginx-1.12.2-1.el7_4.ngx.x86_64.rpm 打包教程:...

    ngx_cache_purge_2.4.2.tar.gz

    ngx_cache_purge_2.4.2.tar.gz 是一个针对Nginx缓存管理的模块扩展,主要用于清除或刷新Nginx服务器上的HTTP缓存。这个版本2.4.2的压缩包包含了ngx_cache_purge模块的所有源代码及相关文件,以便开发者在自己的Nginx...

    nginx缓存清除插件ngx_cache_purge.zip

    ngx_cache_purge 是 nginx 模块,此模块可以清理 nginx 的 FastCGI、proxy、 SCGI 和 uWSGI 的缓存。配置指令(相同位置语法)fastcgi_cache_purgesyntax: fastcgi_cache_purge on|off|&lt;method&gt; [from all|&lt;ip&gt; [.....

    ngx_log_if模块

    ngx_log_if模块是Nginx服务器中的一个自定义日志模块,主要服务于运维人员,用于在特定条件下控制日志的记录。Nginx是一个高性能的HTTP和反向代理服务器,广泛应用于互联网服务,其模块化的架构允许用户通过加载不同...

    Nginx模块ngx_req_status

    ngx_req_status用来展示nginx请求状态信息,类似于apache的status,nginx自带的模块只能显示连接数等等信息,我们并不能知道到底有哪些请求、以及各url域名所消耗的带宽是多少。ngx_req_status提供了这些功能. 1、按...

    ngx_http_proxy_connect_module-master (2).zip

    用于nginx的http正向代理https使用的模块

    ngx_devel_kit-0.2.19.tar.gz

    ngx_devel_kit是Nginx的一个重要扩展模块,它为Nginx提供了一系列的开发工具,方便开发者在Nginx上构建自定义模块。这个0.2.19版本的压缩包“ngx_devel_kit-0.2.19.tar.gz”包含了用于编译和开发Nginx模块所需的源...

    ngx_http_subrange_module.zip

    当Nginx作为文件下载服务的反向代理,用户请求一个非常大的文件的时候,它会一直占满反向代理服务器与后端主机之间的带宽。因为nginx一次获取整个...Configure nginx with--add-module=/path/to/ngx_http_subrange_module

    Nginx的SQLite模块ngx_sqlite.zip

    ngx_sqlite 是嵌入 sqlite 数据库的 nginx 模块。通过强大的nginx server,可以使用http协议访问sqlite数据库。环境- sqlite 3- nginx-1.6.3 安装```sh $ git clone https://github.com/rryqszq4/ngx_sqlite.git...

Global site tag (gtag.js) - Google Analytics