Статус Microsoft Small Business Specialist

Microsoft Licensing Partner

Контактная информация (495) 987 32 16 Техническая поддержка

Использование PostgreSQL в Postfix

Версия для печати

Использование PostgreSQL в Postfix


Введение

Поддержка поисковых таблиц pgsql позволяет Postfix обращаться к конфигурацонной информации, хранящейся на серверах баз данных PostgreSQL. Этот инструмент позволяет работать с множеством баз данных : использовать одну базу для таблицы virtual(5), другую - для access(5), третью - для таблицы aliases(5) Возможно использование нескольких серверов для одной и той-же базы данных, Postfix автоматически переключится на другой (вспомогательный) сервер баз данных, если основной не сможет обслуживать запросы по той или иной причине.

Высоконагруженные почтовые сервера , использующие PostgreSQL, генерируют множество параллельных pgsql-запросов, поэтому PostgreSQL сервер(а) должны быть соответствующим образом настроены, имейте это в виду. Вы можете уменьшить количество соединений с сервером баз данных используя сервис Postfix proxymap(8)

Установка Postfix с поддерержкой PostgreSQL

Заметка: для использования PostgreSQL с Postfix в Debian GNU/Linux's все , что вам нужно - это инсталлировать пакет postfix-pgsql. Пересборка Postfix не требуется.

Для сборки Postfix с поддержкой PostgreSQL, Вам необходимо добавить -DHAS_PGSQL, имя каталога, содержащего заголовочные файлы PostgreSQL, и расположение библиотеки libpq:

Пример

% make tidy
% make -f Makefile.init makefiles \
        'CCARGS=-DHAS_PGSQL -I/usr/local/include/pgsql' \
        'AUXLIBS=-L/usr/local/lib -lpq'

Затем, просто запускаем 'make'.

Использование таблиц PostgreSQL

Если Postfix собран с поддержкой баз данных PostgreSQL, Вы можете заставить его работать с ними. Для этого внесите изменения в конфигурационный файл main.cf , например такие:

/etc/postfix/main.cf:
    alias_maps = pgsql:/etc/postfix/pgsql-aliases.cf

Файл /etc/postfix/pgsql-aliases.cf содержит информацию, объясняющую Postfix, как работать c базой данных PostgreSQL. Полное описание дано в документе pgsql_table(5)

Пример: локальные алиасы

#
# Конфигурационный файл pgsql для таблицы поиска local(8) aliases(5) 
#

#
# Хосты баз данных , c которыми пытается установить соединение Postfix 
hosts = host1.some.domain host2.some.domain

#Имя пользователя и пароль сервера баз данных.
user = someone
password = some_password

# Имя базы данных.
dbname = customer_database

# Шаблон SQL запроса для Postfix 2.2 и выше. Смотрите pgsql_table(5).
query = SELECT forw_addr FROM mxaliases WHERE alias='%s' AND status='paid'

#Для версий Postfix младше 2.2. Подробности в документе pgsql_table(5).
select_field = forw_addr
table = mxaliases
where_field = alias
# Не забывайте про "AND"!
additional_conditions = AND status = 'paid'

Использование резервных серверов баз данных

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

Для повышения надежности в Postfix включена возможность доступа к нескольким серверам баз данных (с одинаковым содержимым,естесственно). Это будет работать в том случае, если администраторы настроили реплицикацию необходимой базы данных Postgres на нескольколько серверов - эти машины и будут резервировать друг друга.

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

Credits

  • This code is based upon the Postfix mysql map by Scott Cotton and Joshua Marcus, IC Group, Inc.
  • The PostgreSQL changes were done by Aaron Sethman.
  • Updates for Postfix 1.1.x and PostgreSQL 7.1+ and support for calling stored procedures were added by Philip Warner.
  • LaMont Jones was the initial Postfix pgsql maintainer.
  • Liviu Daia revised the configuration interface and added the main.cf configuration feature.
  • Liviu Daia revised the configuration interface and added the main.cf configuration feature.
  • Liviu Daia with further refinements from Jose Luis Tallon and Victor Duchovni developed the common query, result_format, domain and expansion_limit interface for LDAP, MySQL and PosgreSQL.

Документ перевел Максим Шапошников




 
Будем благодарны за отзыв, с радостью ответим на любые вопросы!

Повторите:
Сообщение:
Контакт:
Отправить!