【问题标题】:NGINX / PHP-FPM: Ajax slow first request, good next onesNGINX / PHP-FPM:Ajax 第一个请求慢,下一个请求好
【发布时间】:2015-06-16 07:24:11
【问题描述】:
  • CMS 是 Elxis,它来自 Joomla (PHP) 的变体。
    • 服务器正在运行nGinx 和PHP-FPM
    • 所有请求都会被记录并执行,最终,B U T!!!

当通过 URL 栏触发特定请求时,请求会立即执行。但是,当通过 ajax(通过 jQuery)触发时,相同的请求会出现非常奇怪的行为。

即:查看图片详细信息的第一个请求(在媒体管理器上)将由 Ajax 触发。它记录在浏览器上,但不在服务器上……还没有……大约 40-50 秒后,请求出现在服务器上,然后立即得到响应。

所有后续请求都会立即执行,没问题。只有第一个很粗糙..

我遇到了麻烦,因为在任何地方都没有记录任何错误:一切似乎都很正常,除了第一个请求到达服务器的延迟......

它不是路由(站点已经启动并且请求已经被处理),它不是解析(IP 在我的 /etc/hosts 文件中)。

在蛋糕上添加一点樱桃,尝试在服务器上捕获数据包(tcpdump)不会产生输出:请求还没有在这里...... 也在客户端上试过:没有输出 - 至少 40 秒...

这一切都在浏览器上,开发者控制台没有显示错误,只是一个待处理的请求。

这是否对任何人敲响了警钟?

The server:
nginx version: nginx/1.6.2
PHP 5.6.7-1 (cli)
PHP 5.6.7-1 (fpm-fcgi)

jQuery 版本 1.11
客户端:在 Firefox 39 (ubuntu) 和 Chromium 41 上试用

【问题讨论】:

  • @Paul,stackoverflow 用于代码,服务器故障用于服务。请帮我选择哪一个是这种情况,我将撤回两个帖子中不相关的一个
  • 你发现了吗?我有一个非常相似的问题
  • 我得查一下,这是为朋友工作的,从那以后我就再也没有收到过那个项目的消息……我会发给你的。
  • 您找到解决方案了吗?我有同样的问题,我被卡住了......谢谢!

标签: jquery ajax nginx php


【解决方案1】:

我遇到了类似的问题,我最终增加了 php-fpm 工作人员的数量。我在 www.conf (pool.d) 中使用了以下设置来解决我面临的问题。我有一个分析服务器设置来跟踪页面浏览量,API 记录页面浏览量有 15-20 秒的延迟。调整以下设置解决了我的问题,也许它可以帮助你。

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-22
    • 2018-08-31
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    相关资源
    最近更新 更多