Apache 接收到同一个接口的多次请求,部分请求会挂起一秒钟

2021-11-13 11:05:54 +08:00
 815979670

写了个 js 循环 里面是 ajax 同时请求一个接口时 就会出现部分接口响应挂起一秒钟的情况。

测试发现 Nginx 、kangle 服务器未出现这种问题,所以 Apache 的某种机制吗?

与 PHP 版本也没有关系,尝试了切换了 PHP 多个版本。

前端代码:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<button >发送请求</button>
<body>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
    <script>
        $('button').click(function(){
           for(var i=1;i < 10;i++){
            $.get('./apache.php?v='+i);
           }
        })
    </script>
</body>
</html>

后端代码:

<?php
echo time();

后端代码也不可能是因为性能原因造成的并发限制

Apache 配置:

1245 次点击
所在节点    问与答
4 条回复
eason1874
2021-11-13 11:17:36 +08:00
看起来是限制并发,最多限制 5 个,检查下这方面的 Apache 配置
815979670
2021-11-13 11:46:39 +08:00
@eason1874 应该不是限制五个 我遇到的情况是 两个并发 就会出现这个问题 这部分代码 是我摘出来的
然后 我检查了配置 没有限制并发数
v2020
2021-11-13 12:30:03 +08:00
缓存响应参数或者 etag 原因? apache 可以不用 fastcgi 实现
815979670
2021-11-13 15:34:34 +08:00
@v2020
apache 使用 除了 cgi 之外还可以通过模块的方式加载 php 可目前 大部分都是通过 fastcgi 的方式去调 php 了
而且换成 nginx 的 fastcgi 也没这个问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/815101

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX