Имена хостов в конфигурационном файле HAProxy

Сообщение об ошибке означает, что клиент открывает соединение с портом 25 на Вашем сервере, но не дает никакие другие команды. Я выскажу произвольное предположение здесь и буду подозревать, что это - проблема масштабирования окна TCP. Если клиентом является Windows Vista / 7 попыток машины что-то как:

netsh interface tcp set global autotuninglevel=disabled

или

netsh interface tcp set global autotuninglevel=restricted

от командной строки, которую Вы запустили как администратор. Если Ваш сервер является машиной Linux, можно попытаться добавить их в bootom/etc/sysctl.conf:

 net.ipv4.tcp_rmem = 4096 87380 174760
 net.ipv4.tcp_wmem = 4096 16384 131072
 net.ipv4.tcp_window_scaling = 0

Выполненный "sysctl-p", как поддерживают изменения для вступления в силу. Завися случай Вам, возможно, понадобятся оба. Однако это - обходное решение и не решение проблемы, и как я сказал, что произвольное предположение, так как я видел такое поведение вместе с сообщением об ошибке, что Вы описываете слишком много раз.

7
задан 30 December 2013 в 23:29
2 ответа

В haproxy> = 1.7 вы должны иметь возможность использовать init-addr параметр, не указав ничего, чтобы предотвратить разрешение DNS при запуске.

Из docs :

init-addr {last | libc | нет | }, [...] *

Укажите, в каком порядке адрес сервера должен быть разрешен при запуске если он использует полное доменное имя. Предпринимаются попытки разрешить адрес, подав заявку в включите каждый из методов, упомянутых в списке, разделенном запятыми. Первый используется успешный метод. Если конец списка достигнут без при нахождении рабочего метода выдается ошибка. Метод «последний» предлагает выбрать адрес, который появляется в файле состояния (см. «файл состояния сервера»). Метод "libc" использует внутренний преобразователь libc (gethostbyname () или getaddrinfo () в зависимости от операционной системы и вариантов сборки). Метод «нет» конкретно указывает, что сервер должен запускаться без действительного IP адрес в неактивном состоянии. Может быть полезно игнорировать некоторые проблемы с DNS при запускается, ожидая исправления ситуации позже. Наконец, IP-адрес (IPv4 или IPv6) может быть предоставлен.

Таким образом, ваша строка конфигурации может быть:

server s1 myhostname init-addr none

7
ответ дан 2 December 2019 в 23:28

После того, как я столкнулся с той же проблемой и быстро поискал, я нашел следующее (сорвано http://www.bentasker.co.uk/documentation/linux/161- configuring-postfix-to-block-outgoing-mail-to-all-but-one-domain )

Думал, что поделюсь этим здесь


Использовать отображение транспорта Используя этот метод, мы можем сказать Postfix либо отклонить почту, либо проигнорировать ее. Последний обычно является предпочтительным методом, поскольку мы хотим, чтобы отправляющее приложение считало, что письмо было отправлено.

Сначала нам нужно отредактировать файл конфигурации постфикса.

nano /etc/postfix/main.cf

Теперь найдите transport_maps (Ctrl-W, transport_maps -> Enter) . Вы ничего не должны найти (если вы это сделаете, пропустите следующий шаг, но обратите внимание, какой файл указан в списке)

Добавьте строку, читающую

transport_maps = hash:/etc/postfix/transport

Примечание: в зависимости от версии Postfix, которую вы используете, вы можете используйте texthash, чтобы избежать необходимости запускать postmap для файла. Читатель должен решить, какой маршрут он предпочел бы, но если ваша версия постфикса <2.8, вы не можете использовать texthash.

Сохранить и закрыть (Ctrl-X, Y -> Enter)

Теперь нам нужно обновить транспортные карты (если вы этого не сделали) Не нужно добавлять строку, подставьте здесь соответствующий путь к файлу)

nano /etc/postfix/transport

Теперь нам нужно добавить строку, определяющую, в какой домен разрешить отправку (я собираюсь разрешить bentasker.co.uk). Для этого вставьте следующие строки

example.com :
* discard:

. Это просто отбрасывает сообщения на любой адрес электронной почты, не входящий в домен bentasker.co.uk. Если вы хотите отклонить с ошибкой, вы должны использовать (установите текст ошибки в соответствии с вашими потребностями)

example.com:
* error: Only allowing one domain

Примечание: просто добавьте дополнительные домены в строку после bentasker.co.uk:, по одной строке на домен.

Сохранить и закрыть (Ctrl-X, Y -> Enter)

Теперь нам нужно создать хэш файла (если вы не использовали texthash в main.cf)

postmap /etc/postfix/transport

Наконец, нам нужен Postfix, чтобы перезагрузить его правила

/etc/init.d/postfix reload

Работа выполнена! Теперь вы должны обнаружить, что электронные письма, отправленные на не указанные домены, автоматически отбрасываются, в то время как письма для доменов из белого списка проходят как обычно.

[...] IPv4- или IPv6-адрес сервера. В качестве альтернативы разрешаемое имя хоста поддерживается [...]

другими словами, нельзя использовать неразрешимые имена хостов в конфигурации.

Идея:

Любая часть адресной строки может ссылаться на любое количество сред переменные, поставив перед их именем знак доллара ('$') и необязательно заключая их в фигурные скобки ('{}'), аналогично тому, как выполняется в оболочке Bourne.

4
ответ дан 2 December 2019 в 23:28

Теги

Похожие вопросы