我通过以下配置将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秒,但它只是一个接一个地顺序处理)。你能解释为什么吗?以及如何解决?
答案 0 :(得分:0)
我已经玩了很多,并且意识到当我在Chromium中打开多个标签时,这种行为是只能重现的。对于我的其他浏览器(Firefox),一切正常。另外,如果我执行curl
请求,那么一切都会按预期进行。