`
qq362228416
  • 浏览: 33332 次
社区版块
存档分类
最新评论

使用nginx收集用户页面加载时间

 
阅读更多

最近老是有用户说,页面打开慢,但是自己打开又很快,所以想统计一下用户打开网站的时间,当然这个统计有点粗糙,但是也能说明一点问题

实现原理很简单,就是在header里面保存一下用js保存一下当前时间,然后在body结束前面再加一段js,加载耗时(ms) = 用当前时间 - header里面的时间,就得到了这个页面加载大概需要的时间,主要是页面内容、CSS、js这些加载所花的时间,ajax这里不统计,知道原理之后就简单了

这是header里面加的

<script type="text/javascript">var loadTime = new Date().getTime()</script>

这是body结束标签前的,主要用来做数据上传

<script type="text/javascript">
    (function(){var time = new Date().getTime()-loadTime;var args = ['time=' + time,'url=' + location.href,'app=d2VpeGlu'];var img = new Image(1, 1);img.src = 'http://www.test.com/load.gif?' + args.join("&");})()
</script>   

通过加载图片的方式把数据上传到服务器,图片没有跨域问题,我这里主要只采集两个信息,一个是time,也就是时间,一个是当前页面的url,废话,没有url我怎么知道是哪个页面加载比较慢,还有一个参数是app,只要用来区分是那个网站,因为我部署了多个网站,所以加一个app标识,好过滤数据

服务端的nginx其实并没有一个叫做load.gif的图片,这个是我来搜集数据用的,代码就几行

location = /load.gif {
    access_log logs/stat.log main;
    default_type image/gif;
    content_by_lua_block{
        ngx.say("")
    }
}

其实这里什么都没做,直接返回了空内容,只是把日志写到了一个单独统计的log文件里面,好方便查看,有时间的话在lua里面处理一下,做个统计排序,做个数据可视化页面,就差不多了,最近用openresty做了两个网站,感觉还不错,nginx + lua 玩法很多。

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    nginx入门到精通

    2. **第三方缓存模块**:如 ngx_pagespeed,对网页进行优化,加速页面加载。 **七、日志管理和性能监控** 1. **日志配置**:设置Nginx的日志格式,收集访问日志,便于分析和排查问题。 2. **性能监控**:使用工具...

    win64环境下nginx-1.9.4安装包

    在命令行中执行 `nginx.exe -k install` 来安装服务,然后用 `nginx.exe -s stop` 停止服务,`nginx.exe -s reload` 重新加载配置,`nginx.exe -s restart` 重启服务。 7. **管理Nginx服务**: 在服务管理器中,你...

    Nginx高性能Web服务器详解

    2. Gzip压缩:开启gzip压缩,减少网络传输的数据量,提高页面加载速度。 3. 日志管理:通过access_log和error_log指令,记录和分析服务器的运行情况,便于故障排查和性能优化。 七、Nginx监控与故障排除 1. 日志...

    腾讯云部署Django+Nginx+uWSGI+SimpleUI.解决 .svg文件不能显示问题

    我们将使用Django、Nginx、uWSGI和SimpleUI这些技术,并且会详细解释每个组件的作用以及配置过程。 首先,Django是一个Python开发的高级Web框架,用于构建高效、可扩展的Web应用。而uWSGI是一个高性能的应用服务器...

    nginx-1.14.2.rar

    - 使用Nginx的日志功能,可以收集详细的访问日志,有助于监控和分析系统性能。 5. **Nginx扩展与模块** - Nginx可以通过模块化扩展功能,例如 ngx_http_proxy_module 实现反向代理, ngx_http_rewrite_module ...

    nginx-1.15.5

    6. **内容压缩**:Nginx 可以在服务器端自动压缩响应数据,减少网络传输的数据量,加快页面加载速度。 7. **模块化设计**:Nginx 采用模块化设计,用户可以根据需要安装和配置各种功能模块,如限速、访问控制、URL...

    nginx+tomcat实现负载均衡

    - **错误页面处理**:Nginx可以自定义错误页面,提高用户体验。 **6. 高可用性** 通过设置多个Tomcat实例,Nginx可以根据健康检查结果动态调整负载均衡策略,确保服务的高可用性。当某个Tomcat实例故障时,Nginx...

    从代码看Nginx运维本质.pdf

    - 使用 gzip 压缩减少带宽占用,加快页面加载速度。 4. **系统级优化**: - 提升 Backlog、文件描述符等系统参数,以更好地支持高并发场景。 - 调整 TCP 连接的参数,如启用 keepalive 保持长连接状态,减少连接...

    实战Nginx取代Apache的高性能Web服务器

    - Nginx支持开启GZIP压缩,减小传输数据量,降低带宽使用,提高页面加载速度。 8. **SSL/TLS安全通信** - Nginx配置SSL证书,支持HTTPS协议,确保数据传输的安全性。 9. **日志管理** - Nginx的日志模块允许...

    Linux中Nginx安装与配置详解

    可以使用第三方模块(如`nginx-module-http-sticky`和`nginx-module-vts`)或工具(如`prometheus-nginx-exporter`)来收集和分析Nginx的运行状态。 4. 错误处理: 确保正确配置了错误页面,例如404和500错误页。 ...

    使用django进行网站的前后端编辑及利用uwsgi和nginx进行服务器端的部署.zip

    - 静态文件处理:Django在生产环境中应处理静态文件,可以通过`collectstatic`命令收集到一个指定目录,然后在nginx中配置该目录为静态文件根。 - 环境变量和配置管理:使用环境变量存储敏感信息,如数据库密码,...

    AlbumX:基于NginX服务器的高性能Web相册

    5. **图片懒加载**:为了优化页面加载速度,JavaScript可以实现图片的延迟加载,即只有当图片进入视口时才开始加载,减少初次加载的等待时间。 ### 三、专辑X的实现架构 1. **前端框架**:可能使用React、Vue或...

    特卖倒计时抢购

    页面加载速度、操作流畅度和反馈信息的及时性都会影响用户是否决定购买。优化前端资源加载,使用懒加载和CDN服务可以提升页面加载速度。同时,良好的错误提示和反馈机制能增强用户信任感。 此外,系统的稳定性是...

    PHP实例开发源码—PHP版网站状态监控.zip

    1. 数据收集:这部分代码负责定期或者按需访问网站URL,模拟用户请求来获取服务器响应时间和页面加载时间。这通常通过cURL库或者file_get_contents函数实现。同时,还可以检查HTTP响应状态码,以判断请求是否成功。 ...

    商业源码-编程源码-PHPStat网站决策支持系统 v2.0.zip

    同时,系统也可能利用JavaScript代码嵌入到网页中,以收集更详细的信息,如页面加载时间、点击事件等。 2. 数据处理和存储:收集的数据需要被有效地存储和管理。PHPStat可能使用MySQL或其他关系型数据库管理系统...

    构建高性能Web站点

    - **HTTP/2**:利用其多路复用特性,减少TCP连接数量,提高页面加载速度。 2. **后端优化**: - **缓存策略**:使用浏览器缓存、服务器缓存(如Redis、Memcached)来存储常用数据,减少数据库查询。 - **数据库...

    网络爬虫 爬取搜狐新闻 并显示到页面上

    10. 使用web服务器(如Apache、Nginx)或web框架内置的服务器运行网页,即可在浏览器中查看爬取的新闻数据。 以上就是“网络爬虫爬取搜狐新闻并显示到页面上”的主要步骤和技术点,通过实践这个项目,你可以深入...

    基于PHP MySQL的疫情防控信息填报收集系统设计与实现.pdf

    它基于Web页面实现对Linux服务器的可视化管理,不仅可以帮助不熟悉Linux命令的用户无障碍地管理他们的Linux服务器,也可以帮助Linux运维人员提升运维管理效率。 2.2 FastAdmin FastAdmin是一款基于ThinkPHP+...

Global site tag (gtag.js) - Google Analytics