POSTFIX

Подробное руководство

Меню сайта
Опрос

Модные зубные протезы
Новая 3D игра
Софт для латания дыр
Почтовый сервер
Программа для рисования
Гель от растяжений


Популярные статьи
Карты
Карты – это файлы и базы данных, которые Postfix использует для поиска информации. Карты могут иметь разное назначение, но у них есть общий признак: левая сторона (left hand side, LHS), называемая ключом, и правая сторона (right hand side, RHS), называемая значением.

Приведем несколько примеров ключей и значений:
Ключ Значение
postmaster: John
postmaster@example.com John
192.168.254.12 REJECT
spammer@example.com REJECT
/^Subject: your account {25}[a z]{8}/ REJECT Mimail Virus Detected


Работа с картой происходит следующим образом: вы указываете ключ и получаете результат – соответствующее значение.

Типы карт
Postfix может использовать различные виды карт. Доступные форматы зависят от того, каким образом Postfix был скомпилирован в вашей системе. Для того чтобы определить, какие форматы поддерживает ваш Postfix, выполните в командной строке команду postconf m. Будет выведен перечень типов карт:

# postconf m
btree
cdb
cidr
environ
hash
ldap
mysql
nis
pcre
proxy
regexp
sdbm
static
tcp
unix


Индексированные карты (hash, btree, dbm и другие)

Индексированные карты – это двоичные базы данных, созданные из обычных текстовых файлов посредством таких команд, как newaliases, postalias и postmap. Двоичные карты индексированы, так что Postfix может быстро извлекать значение, сопоставленное ключу. Для улучшения производительности демоны Postfix открывают такие карты при запуске и не перечитывают их заново до тех пор, пока не заметят изменения файлов карт в файловой системе. Для перезагрузки карты демон завершает свою работу, и демон master запускает новый демон.

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


Чаще всего используются индексированные карты, созданные из текстовых файлов aliases, virtual, transport, relocated и sasl_passwd.
Идентифицировать файл карты можно по его имени, состоящему из имени исходного файла и суффикса, обозначающего формат индекса. Например, файл карты aliases, созданный командой postalias, называется aliases.db.

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


Postfix запрашивает записи в предопределенном порядке, указанном в страницах руководства для таблиц access(5), transport(5), virtual(5), aliases(5) и canonical(5). Другими словами, каждый просмотр карты фактически состоит из серии одиночных запросов (производных от исходного запроса) по отдельным ключам индексированной карты.

Линейные карты (PCRE, regexp, CIDR и обычные файлы)
Линейные карты – это обычные текстовые файлы. Postfix читает такие файлы сверху вниз, что отличает их от индексированных карт. Это весьма важное отличие, т. к. первое совпадение в файле определяет то действие, которое выполнит Postfix. Последующие записи Postfix игнорирует вне зависимости от того, удовлетворяют ли они запросу или нет.

Рассмотрим regexp карту, в которой поиск john.doe@example.com возвращает OK, потому что первая строка соответствует условию запроса.
/john\.doe@example\.com/ OK
/example\.com/ REJECT
Однако если поменять местами строки такой карты, то первое совпадение будет найдено в другой строке, так что тот же поиск john.doe@example.com вернет REJECT:
/example\.com/ REJECT
/john\.doe@example\.com/ OK
Преобразовывать линейные карты в двоичную форму не нужно (на самом деле вам бы и не удалось это сделать). Демоны Postfix читают их при запуске и не замечают изменений в карте до тех пор, пока не будут перезапущены. Стандартными линейными картами Postfix являются header_checks, body_checks и mime_header_checks.

Предупреждение
По мере роста линейных карт демоны Postfix будут тратить больше времени на их обработку. Это особенно верно в отношении проверок тела или заголовка, т. к. демон cleanup должен сравнить каждую строку тела (вплоть до body_checks_size_limit) и заголовка с каждой строкой карты.

Это вызывает значительное снижение скорости работы, особенно если у вас задано много параметров *_checks, которые используют карты типа regexp и PCRE (Perl compatible regular expression – Perl совместимое регулярное выражение) для предотвращения попадания в систему спама. Если такое случается, обычно это означает, что пришло время поручить комплексную фильтрацию спама внешнему приложению.


Для того чтобы демоны Postfix заметили изменения в линейных картах, выполните команду postfix reload. Если скорость работы не очень важна, то можно установить параметр max_use для определения времени жизни демонов. Как только демон обработает то количество задач, которое указано в данном параметре, он будет остановлен и перезапущен демоном master. После перезапуска все необходимые карты будут считаны заново.



Другие новости по теме:

  • Как Postfix обращается к картам
  • Базы данных (MySQL, PostgreSQL, LDAP)
  • Утилиты командной строки
  • Влияние действий на оценку ограничений
  • Как работают проверки?
  • Категория: Анатомия Postfix | Добавил: admin (28 июля 2009)
    Просмотров: 1651 | Рейтинг:
    Метки
    Очень интересное
    Интересное
    » Друзья сайта