apache,ugswi,烧瓶,通讯问题

时间:2018-12-22 23:20:53

标签: flask routes load-balancing uwsgi

我的小项目有问题。 我正在尝试在Apache Web Serwer上实现loadbalancer 它将所有传入请求发送到两个应用程序服务器 用uwsgi +烧瓶。

My web serwer ip is: 10.0.0.10
App1: 10.0.0.8
App2: 10.0.0.9

当我遇到以下情况时,一切都很好:

app = Flask(__name__)
@app.route('/')
def index():
   return render_template('heh.html')

然后我的URL是10.0.0.10,并显示heh.html的内容。所以这很好,但是..

当我尝试路由到其他位置时,我的问题开始了:

@app.route('/project/')
def project():
   return "I'm App 1"

当我尝试使用浏览器进行连接时: 10.0.0.10/项目 然后我的网址更改为10.0.0.8/projects或10.0.0.9/projects 而且我知道“连接被拒绝”的信息

我在以下Web服务器上的Apache配置:

<Proxy balancer://mycluster>
BalancerMember http://10.0.0.8:8081
BalancerMember http://10.0.0.9:8081
</Proxy>

<Location /balancer-manager>
SetHandler balancer-manager
</Location>

ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/

在应用程序节点上的Uwsgi配置:

[uwsgi]
chdir = /opt/uwsgi
wsgi-file = myflaskapp.py
http-socket = :8081
processes = 20
threads = 10
stats = :8082
callable = app
uid = klopsiu
harakiri = 50
logto = /var/log/uwsgi/uwsgi.log

我的应用程序文件:

from flask import Flask, render_template, redirect, url_for, current_app

app = Flask(__name__)
@app.route('/')
def index():
    return render_template('heh.html')

@app.route('/projects/')
def projects():
    return "I'm app 1"

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')

请告知。 我不想使用任何反向代理,我希望一切都进来,出来 通过负载均衡器。

感谢并等待您的帮助:)

1 个答案:

答案 0 :(得分:0)

那是我的错误,我忘记了当我尝试访问一些烧瓶URL时,我只需要在末尾添加/,例如: 10.0.0.10/数据库/