add guide mtproto with haproxy(no faketls)

This commit is contained in:
admin1350
2026-03-17 23:33:11 +03:00
committed by GitHub
parent d8c8bce71b
commit f80e997492

View File

@@ -1,2 +1,65 @@
# mtproto-docker-haproxy # mtproto-docker-haproxy
mtproto-docker-haproxy # Гайд как сбалансировать нагрузку на mtproto (гайд c faketls и без него)
## 0. Если нету докера ставим скприптом на все ноды
```bash
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
```
## 1. Поднимаем в докере mtproto
### 1.1 Генерация единого секрета, по которому будут подключатся клиенты
```bash
head -c 16 /dev/urandom | xxd -ps
```
### 1.2 Запуск MTProto ноды (без faketls)
```bash
docker run -d --name mtproto-proxy --restart always \
-p 443:443 -p 8888:8888 \
-e SECRET=ТВОЙ_СЕКРЕТЗАГА_1.1 \
-e AES_PWD=$(openssl rand -hex 16) \
telegrammessenger/proxy:latest
```
P.S: `-p 443:443` порт, на который будет стучатся балансировщик. -p 8888:8888: Внутренний порт статистики (опционально).
---
## 2. Установка и настройка HAProxy.
### 2.1 Установка
```bash
sudo apt update && sudo apt install haproxy -y
```
### 2.2 Настройка конфига c rounrobin
* В конец файла `/etc/haproxy/haproxy.cfg ` добавляем то что написано снизу, конечно же меняя ip нод на свои
то что нужно добавить в конец файла `/etc/haproxy/haproxy.cfg`:
```haproxy
frontend mtproto_in
bind *:443
mode tcp
option tcplog
default_backend mtproto_nodes
backend mtproto_nodes
mode tcp
balance roundrobin
# Проверка доступности порта (check)
server node1 1.1.1.1:443 check
server node2 2.2.2.2:443 check
server node3 3.3.3.3:443 check
```
### 2.3 Если работает не очень стабильно, то можно использовать с leastconn.
сам файл будет выглядеть так:
```haproxy
frontend mtproto_in
bind *:443
mode tcp
option tcplog
default_backend mtproto_nodes
backend mtproto_nodes
mode tcp
balance leastconn
option tcp-check
server node_local 1.1.1.1:443 check inter 2s rise 2 fall 3
server node2 2.2.2.2:443 check inter 2s rise 2 fall 3
server node3 3.3.3.3:443 check inter 2s rise 2 fall 3
```