inbound-proxy-timeout

<transmissions-api-listener>

Сколько ждать заголовок балансировщика на входе подачи по HTTP
в конфигурации это строкаinbound-proxy-timeout 5sвнутри блока <transmissions-api-listener>
То же имя ещё 1:<smtp-listener><transmissions-api-listener>— часть из них другие настройки, часть та же самая
Терпение в начале соединения

Заголовок балансировщика должен прийти первым, до всего остального. Строка задаёт, сколько его ждать. Умолчание — 5s, и по истечении узел разрывает соединение.

Значение 0 равносильно never — то есть ждать сколько угодно. Это опасная настройка: подвисшее соединение будет держать слот приёма неограниченно долго.

Применима только вместе с use-inbound-proxy. Без него заголовка не ждут вовсе, и ждать нечего.

Пять секунд — много для локальной сети. Балансировщик обычно стоит рядом и шлёт заголовок сразу; секунды хватает с запасом, а меньшее значение быстрее отсекает тех, кто пришёл мимо него.

Главная ловушка — поставить ноль «чтобы не рвать соединения». Каждое зависшее подключение займёт слот приёма насовсем. При исчерпании слотов встанет вся подача, и связать это с настройкой ожидания будет непросто.
Что делает Хаб. Не пишет: балансировщика перед узлами нет.

🔎 Когда появится, умолчания хватит: заголовок приходит первым же пакетом, и пять секунд — уже с запасом.

Рекомендуемые значения

Меньше значит быстрее отсекать чужих:

Значение Когда
5s (умолчание) всегда
1s балансировщик в той же сети
0 или never никогда: слоты приёма займутся навсегда
Умолчание 5s, равносильность нуля и never, разрыв соединения по истечении и условие «только при включённом приёме заголовка» — из руководства (§ 3.3.21.14).
Пример в конфигурации
# балансировщик в той же сети — секунды хватает
<transmissions-api-listener 127.0.0.1:4433>
    use-inbound-proxy yes
    inbound-proxy-timeout 1s</transmissions-api-listener>
Значение 0 здесь читается как «ждать вечно» и занимает слот приёма на каждом зависшем подключении.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается1 ошибка▶

Ставят ноль, чтобы соединения не рвались

наш опыт

Чем чреватоНоль означает «ждать всегда». Каждое зависшее подключение занимает слот приёма навсегда, и при их исчерпании подача останавливается.
Как заметитьЧисло открытых входящих соединений растёт и не падает.
Как правильноВернуть конечное значение — пяти секунд хватает с запасом.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
inbound-proxy-timeout { TIME-INTERVAL | never }
Значения
интервал времени либо never; 0 равносилен never
Умолчание
5s § 3.3.21.14
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<transmissions-api-listener>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Наследования нет: строка живёт внутри своего <transmissions-api-listener>. Такая же строка есть у второго вида входа — входы разные, а не уровни одного.
Как проверить на узле
Подключаемся и молчим — соединение должно закрыться по истечении:
time nc NODE 4433 </dev/null
Время до закрытия должно совпасть с заданным. Соединение, висящее дольше, означает либо ноль в значении, либо что приём заголовка выключен вовсе.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Безопасность узла