V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
815979670
V2EX  ›  问与答

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

  •  
  •   815979670 · 2021-11-13 11:05:54 +08:00 · 1253 次点击
    这是一个创建于 1100 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写了个 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 配置:

    4 条回复    2021-11-13 15:34:34 +08:00
    eason1874
        1
    eason1874  
       2021-11-13 11:17:36 +08:00
    看起来是限制并发,最多限制 5 个,检查下这方面的 Apache 配置
    815979670
        2
    815979670  
    OP
       2021-11-13 11:46:39 +08:00
    @eason1874 应该不是限制五个 我遇到的情况是 两个并发 就会出现这个问题 这部分代码 是我摘出来的
    然后 我检查了配置 没有限制并发数
    v2020
        3
    v2020  
       2021-11-13 12:30:03 +08:00 via Android
    缓存响应参数或者 etag 原因? apache 可以不用 fastcgi 实现
    815979670
        4
    815979670  
    OP
       2021-11-13 15:34:34 +08:00
    @v2020
    apache 使用 除了 cgi 之外还可以通过模块的方式加载 php 可目前 大部分都是通过 fastcgi 的方式去调 php 了
    而且换成 nginx 的 fastcgi 也没这个问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2647 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 15:25 · PVG 23:25 · LAX 07:25 · JFK 10:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.