У меня проблема с моим маленьким проектом.Я пытаюсь реализовать loadbalancer на веб-сервере apache, который будет отправлять все входящие запросы на два сервера приложений с помощью uwsgi + flask.
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/проекты Тогда мой URL-адрес меняется на 10.0.0.8/projects или 10.0.0.9/projects, и у меня есть информация, что «Соединение отклонено»
Моя конфигурация 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')
Пожалуйста, сообщите.Я не хочу использовать обратный прокси-сервер. Я хочу, чтобы все работало с помощью loadbalancer.
Спасибо и жду вашей помощи:)