add guide mtproto with haproxy(no faketls)
This commit is contained in:
65
README.md
65
README.md
@@ -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
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user