You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
У меня работает телеграм-бот в режиме web-hook (100-300 RPS входящих).
В качестве реверс-проски использую nginx
Так как сервер телеграма нельзя попросить присылать запросы не несколько endpoint я не могу "кластеризовать" свой бекенд
В запросе от сервера всегда вот такой JSON (в одну строку):
Есть ли какой модуль, похожий на http_upstream
который бы "балансировал" запросы по "бекендам" в зависимости от тела сообщения, например
а) если в теле есть подстрока 'chat":{"id":-100111222333,' -> backend1
б_ иначе -> backend2
?
Сейчас я для тестирования использую второй бот, но это неудобно в плане отправки заранее заготовленных ресурсов (file_id и т.п.)
The text was updated successfully, but these errors were encountered:
Можно воспользоваться методом балансировки hash, где в качестве значения брать подстроку из тела.
Либо использовать sticky в режиме route, где в качестве значения брать производную от подстроки из тела, пропущенную через map или split_clients - на входе переменная с телом, в которой ищется подстрока, а на выходе будет sid сервера.
Тело запроса будет в переменной $request_body. Может понадобиться также включение директивы client_body_in_single_buffer и увеличение client_body_buffer_size. Найти в теле какую-то подстроку можно с помощью директивы map с регулярным выражением, в котором, в том числе, можно использовать т.н. группы захвата (captures).
У меня работает телеграм-бот в режиме web-hook (100-300 RPS входящих).
В качестве реверс-проски использую nginx
Так как сервер телеграма нельзя попросить присылать запросы не несколько endpoint я не могу "кластеризовать" свой бекенд
В запросе от сервера всегда вот такой JSON (в одну строку):
{"update_id":56351,"message":{"message_id":28,"from":{"id":111,"username":"aaaa},"**chat":{"id":-100111222333,**"title":"Some chat",...
Есть ли какой модуль, похожий на http_upstream
который бы "балансировал" запросы по "бекендам" в зависимости от тела сообщения, например
а) если в теле есть подстрока 'chat":{"id":-100111222333,' -> backend1
б_ иначе -> backend2
?
Сейчас я для тестирования использую второй бот, но это неудобно в плане отправки заранее заготовленных ресурсов (file_id и т.п.)
The text was updated successfully, but these errors were encountered: