让nginx并行处理来自同一个IP的请求?

让nginx并行处理来自同一个IP的请求?

我公司有一个内部应用程序,需要每个客户端都非常快,因为客户端非常有限,而且整个过程都是内部的。

因此,客户端需要发送大量并发请求,而我想要nginx做的就是在其中尽可能地实现并行性。是的,这与人们通常的做法完全相反。无论我在哪里搜索,人们都在要求限制每个 IP 的连接数,从而减轻攻击等。我想要的恰恰相反。

我真的不明白nginx这里面发生了什么。我尝试做的是使用一个简单的服务器来测试它的行为,该服务器只休眠 10 秒并返回一个字符串,我curl从 5 个不同的终端对其进行了编辑。数字分别是 10 秒、18 秒、21 秒、25 秒、30 秒。因此,确实发生了某种排队,但并不是真正连续的(否则它应该是 10 秒、20 秒、30 秒、40 秒、50 秒)。但是,它也不是完全并行的!

我希望这能澄清我的想法...请提供建议。

答案1

Nginx 允许来自同一 IP 的任意合理数量的请求。刚刚检查了此配置:

server {
    listen 3333;

    default_type text/plain;

    location / {
        echo_sleep 3;
        echo 'Hi';
    }
}

和脚本:

for ((i = 0; i < 100; i++)); do time curl -s localhost:3333  &  done

我猜,您已经使用 PHP 或 nginx 后面的其他服务器进行了测试,并且该服务器无法处理那么多请求。

相关内容