【问题标题】:Nginx responses static files for too long timeNginx响应静态文件时间过长
【发布时间】:2017-01-11 20:42:09
【问题描述】:

由于某些意外原因,我的 nginx 服务器响应静态文件(如 .css.js)的时间过长。例如,页面上有一些文件大小小于 10kb 的连接脚本和样式表。 Chrome devtools 时间线分析显示,这些文件的下载时间约为 15 秒以上(见下面的截图)。

这么长时间响应静态文件的原因是什么?

重要更新。我注意到,它只发生在 html 页面上。如果要 单独打开任何 js 或 css 文件,它加载速度很快,因为它实际上是 预计。

我在我的服务器上使用nginx+apache bundle,nginx负责所有的静态文件,比如js、css、图片等。

提前致谢。

【问题讨论】:

  • 其他浏览器也会出现这种情况吗?
  • 是的,在 Chrome、Safari、IE(包括 Edge)和 FireFox(最新版本)中。
  • 是每次连接服务器时还是第一次尝试时都会出现此错误?您可能会遇到 DNS 查找问题。 (serverfault.com/a/385161) 你确定直接打开文件加载速度很快吗?也许您的浏览器缓存了它们..
  • 是的,我确定。我试图用刷新的缓存打开它们(也直接从我以前从未打开过我的网站的其他计算机上打开它们)。它们的加载时间不到 500 毫秒。

标签: nginx time static-files resource-leak


【解决方案1】:

我的问题是由配置错误的 DDoS 保护 (ngx_http_limit_req_module) 引起的。我无意中将 nginx 配置从 Internet 的某个位置复制粘贴到了我的服务器上(因此,除了页面加载时间之外,一切正常)。谢谢上帝,我有一点要检查 nginx 错误日志,其中有类似的警告

2017/01/12 04:14:33 [警告] 21347#21347:*120 延迟请求,超出:0.975,按区域“my_host”,客户端:my_ip_address em>,服务器:my_host,请求:“GET JS_OR_CSS_SCRIPT_URI HTTP/1.1”,主机:“my_host”,引用者:“ page_url_which_was_requesting_js_or_css"

因此,谷歌搜索有助于正确配置 limit_req_zonelimit_req

http {
     limit_req_zone $host zone=hostreqlimit:20m rate=1500r/m;
     ...
     server {
               ...
               limit_req zone=hostreqlimit burst=2500 nodelay;
               ...
     }
}

抱歉问了一个愚蠢的问题 c:

【讨论】:

    猜你喜欢
    • 2013-03-08
    • 1970-01-01
    • 2018-07-17
    • 2016-10-24
    • 2016-07-20
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多