为什么Nginx将请求顺序发送到上游服务器

时间:2019-05-29 00:28:12

标签: nginx nginx-reverse-proxy

我通过以下配置将Nginx用作负载均衡器:

http {
upstream backend {
    server 127.0.0.1:8010;
    server 127.0.0.1:8011;
}
server {
    listen 80;

    location / {
        proxy_pass http://backend;
    }
}
}

所以我有2个本地服务器,它们是Flask应用程序:

#app1.py
from flask import Flask, jsonify, abort, request, make_response
import time

@app.route("/", methods=['GET'])
def root():
    time.sleep(5)
    return jsonify({"response": "Hello, world!"})

app.run(debug=False, port=8010) # for app2.py the only diff is port=8011

当我同时(在不同的标签中)进行4个呼叫localhost:80时,我需要等待20秒才能看到“你好,世界!”在所有4个标签中(而不是我预期的10个,因为它应该分发到2台服务器,每个标签都需要10秒,但它只是一个接一个地顺序处理)。你能解释为什么吗?以及如何解决?

1 个答案:

答案 0 :(得分:0)

我已经玩了很多,并且意识到当我在Chromium中打开多个标签时,这种行为是只能重现的。对于我的其他浏览器(Firefox),一切正常。另外,如果我执行curl请求,那么一切都会按预期进行。

相关问题