我公司有一个内部应用程序,需要每个客户端都非常快,因为客户端非常有限,而且整个过程都是内部的。
因此,客户端需要发送大量并发请求,而我想要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 后面的其他服务器进行了测试,并且该服务器无法处理那么多请求。