Одновременное подключение нескольких компонентов Receiver/Sender |
Существует возможность подключать к drweb-maild одновременно несколько компонентов Receiver и/или Sender. Это может понадобиться в следующих случаях: •для одновременной работы с несколькими MTA или SMTP/LMTP-прокси; •для организации разной настройки каждой пары Receiver/Sender (что позволит, к примеру, прослушивать разные интерфейсы); •для получения возможности перенаправлять сообщения из одних MTA в другие (т.е. для маршрутизации).
Возможность запуска одновременно нескольких компонентов осуществляется следующим образом: •каждому компоненту необходимо присвоить уникальный идентификатор (т.е. у каждого элемента из группы компонентов Receiver и группы компонентов Sender будет уникальный ID, при этом ID какого-либо Receiver должен совпадать с ID какого-либо Sender); •затем каждому компоненту необходимо сообщить, откуда ему получать свои настройки; •потом каждому письму, принятому компонентом Receiver, присваивается в качестве тега уникальный идентификатор данного компонента; •после обработки сообщения drweb-maild ищет доступный компонент Sender с тем же идентификатором. Если он не найден, то письмо будет отправлено в Sender, заданный по умолчанию (это компонент Sender, у которого уникальный идентификатор не задан – такой Sender может быть только один), который должен быть всегда доступен. •список доступных компонентов Sender инициализируется при старте и обновляется при получении сигнала SIGHUP; •проблема маршрутизации писем, сгенерированных в drweb-notifier, решается при помощи настройки параметра MsgIdMap секции [Notifier] конфигурационного файла Dr.Web MailD. Этот параметр позволяет определять, в какой Sender требуется отправлять отчеты в ответ на письма от заданных компонентов Receiver. Уникальный идентификатор задается для Receiver и Sender через параметр командной строки --unique-id. При запуске с заданным параметром компоненты создают в каталоге %var_dir/msgs/{in|out} набор подкаталогов для своей очереди писем, а в каталоге %var_dir/ipc/ для Sender создается специальный UNIX-сокет (название каталога и UNIX-сокета определяются на основе заданного уникального идентификатора). Когда запускается второй экземпляр одного и того же компонента (например, второй экземпляр Receiver), то необходимо выполнить дополнительную настройку компонента, т.е. определить, как вторая копия будет получать свою уникальную конфигурацию. Для получения конфигурации можно использовать два способа: •создавать новую копию конфигурационного файла; •модифицировать существующий конфигурационный файл. Последний вариант более прост, но менее гибок. Чтобы модифицировать существующий *.conf файл, необходимо: •создать у Dr.Web Agent новый .amc файл для Dr.Web MailD и добавить в него информацию о новой копии компонента. Имя файла может быть произвольным. Пример:
Здесь drweb-receiver* и drweb-sender* – новые названия компонентов, под которым они будут известны Dr.Web Agent, а Receiver* и Sender* – новые названия уникальных копий соответствующих секций в конфигурационном файле. Остальной список параметров надо скопировать из настройки оригинального компонента. Подробнее о синтаксисе *.amc файлов можно почитать в описании компонента Dr.Web Agent. •сделать копию основной секции настроек компонента в *.conf файл, переименовать ее, указав название, которое было задано на предыдущем этапе, и изменить остальные настройки в новой секции для второго компонента по своему усмотрению; •запустить/перезапустить модуль компонента Dr.Web Agent, чтобы он прочитал новую информацию; •запустить модуль новой копии компонента, указав ему дополнительно параметры командной строки --unique-id, --component, --section. Пример: drweb-receiver --unique-id id2 --component drweb-receiver2 --section Receiver2 Создание новой копии конфигурационного файла При использовании способа, который требует создания новой копии конфигурационного файла, необходимо приложить больше усилий, но при этом появится возможность настраивать произвольно не только параметры основной секции компонента. Для его реализации потребуется: •создать копию оригинального основного файла конфигурации Dr.Web MailD и настроить в нем параметры по своему усмотрению (обратите внимание, что при этом никаких секций переименовывать не требуется!); •создать новый файл .amc, в который надо включить только информацию по новому компоненту(-ам). Также в нем надо указать путь к конфигурационному файлу Dr.Web MailD, созданному на предыдущем шаге; •запустить/перезапустить модуль компонента Dr.Web Agent, чтобы он прочитал новую информацию; •запустить модуль новой копии компонента, указав ему дополнительно параметры командной строки --unique-id, --component. Пример: drweb-receiver --unique-id id2 --component drweb-receiver2 Для обоих способов запуска можно настроить Dr.Web Monitor на использование новых компонентов. Для этого в *.mmc файл компонента Dr.Web Monitor для Dr.Web MailD необходимо добавить строки по запуску новых компонентов. Подробнее о синтаксисе файлов .mmc можно почитать в описании компонента Dr.Web Monitor. |