Pull to refresh
0
0
Send message

Прошу прощения, отдельный server для телеграма не нужен, можно напрямую в map задавать порт контейнера. И у меня никак не получается получить реальные IP для сайтов, только 127.0.0.1. Реальные IP я вижу только в логах из stream, но там слишком базовая информация. И сами веб-сервисы по-прежнему не видят реальных IP.

Я новичок в nginx, но нейронка мне посоветовала разделить server отдельно для тг и отдельно для сайтов:

stream {
    preread_timeout 5s;

    map $ssl_preread_server_name $backend_dispatcher {
        1c.ru          127.0.0.1:10443; # Порт для Telegram
        default        127.0.0.1:10444; # Порт для ваших сайтов
    }

    server {
        listen 443;
        proxy_pass $backend_dispatcher;
        ssl_preread on;
        proxy_connect_timeout 5s;
        proxy_timeout 1h; # Телеграм любит долгие сессии
    }

    # Промежуточный узел для Telegram (БЕЗ proxy_protocol)
    server {
        listen 127.0.0.1:10443;
        proxy_pass 127.0.0.1:1443; # Ваш докер
    }

    # Промежуточный узел для сайтов (с proxy_protocol)
    server {
        listen 127.0.0.1:10444;
        proxy_protocol on;
        proxy_pass 127.0.0.1:4443; # Внутренний порт Nginx HTTP
    }
}

Соответственно, в http-секциях сайтов:

listen 4443 ssl proxy_protocol;

Не знаю, может быть конфиг избыточен, но как будто всё работает. Единственное, в логах telemt (использую его сейчас) не видно IP-адресов клиентов, там вместо них адрес докер-бриджа, по идее можно сделать "network_mode: host" в docker-compose.yml, но тогда будут 127.0.0.1 вместо адресов клиентов (не проверял), пока забил, в логах nginx есть айпишники, за загрузкой канала можно следить в iftop, mtg из статьи не пробовал еще.

Для стороннего наблюдателя трафик неотличим от обычного HTTPS-запроса к этому сайту.

Подскажите пожалуйста, трафик неотличим (условно, понятное дело) ДО или ПОСЛЕ прокси? А то я не очень разбираюсь как работает fake tls.

Information

Rating
7,020-th
Registered
Activity