Обслуживание NNTP новостей
NNTP это прекрасный протокол для доставки сообщений по требованию любому пользователю, интересующемуся данной темой. Usenet -- это большая коллекция новостных групп по тысячам различных тем, которые доставляют сообщения через NNTP. Вследствии того, что протокол работает "по запросу", NNTP сервер собирает текущие сообщения доступные в децентрализованной сети серверов, выбирая только те группы новостей, которые администратор сайта выбрал для включения. При появлении нового сообщения в данной новостной группе оно распространяется без всякой иерархии с этого сервера на все остальные в сети Internet, заинтересованные в подписке на эту конкретную новостную группу.
С точки зрения конечного пользователя, список рассылки может показаться очень похожим на группу новостей. В обоих случаях пользователь создает и размещает сообщения, а также читает сообщения, написанные другими людьми. В давние времена Usenet и Internet, списки рассылки были не способны представить темы обсуждения в виде "цепочек", так как группы новостей делают это сейчас автоматически. Но за прошедшие годы почтовые клиенты проделали хорошую работу по выделению цепочек обсуждения внутри списка рассылки.
Главным отличием новостных групп от списков рассылки заключается в используемых ими сетевых протоколах. Список рассылки все еще опирается на один централизованный почтовый сервер, который принимает все сообщения, предназначенные для отдельного списка, и распространяет эти сообщения по электронной почте всем пользователям, проявившим интерес (одобренные автоматически или человеком модератором). В противоположность этому, NNTP соединяет каждый узел со всеми остальными узлами не полагаясь на центральный сервер; каждый NNTP сервер просто общается с другими ближайшими серверами, и сообщения очень быстро облетают весь мир.
InterNetNews (INN) это NNTP сервер, впервые созданный в 1992, и активно использующийся до сих пор. С момента создания INN достиг уже версии 2.4.1. Домашняя страница INN содержит релизы и документацию (смотри ссылку в Ресурсах).
После получения и распаковки исходных текстов текущей версии, сборка INN осуществляется по шаблону ./configure; make; make install. Для сборки INN, у вас должны быть установлены Perl и yacc (или bison). Программа установки создает множество файлов, преимущественно в каталоге /usr/local/news/ (который вероятно у вас отсутствует, если ранее INN не был установлен).
Перед запуском демона innd (от имени пользователя "news"), вам следует изменить несколько конфигурационных файлов. Все подробности о полном наборе файлов, которым необходимо уделить внимание, находятся за рамками нашего обзора, в более длинном учебнике, озаглавленном Установка и Запуск Сервера новостей Usenet с помощью INN и FreeBSD [Installing and Running a Usenet News Server with INN and FreeBSD] доступном в сети (смотри ссылку в Ресурсах). Многие разрешения и квоты устанавливаются системой make, но вы скорее всего захотите дважды проверить эти настройки.
Файл, которому необходимо уделить особое внимание, это настройки квот -- /usr/local/news/etc/storage.conf. Он определяет на какие группы осуществляется подписка и насколько большая история будет поддерживаться для каждой группы новостей. Когда квота будет превышена, старые сообщения будут уделены из данной группы новостей (на локальном сервере, а не из Usenet вообще). Например, storage.conf может содержать нечто вроде этого:
Листинг 7. Пример конфигурации storage.conf
method cnfs {
newsgroups: alt.binaries.*
class: 1
size: 0,1000000
options: BINARIES
}
method cnfs {
newsgroups: *
class: 2
size: 0,100000
options: NOTBINRY
}
|
Значение class определяет порядок в котором применяются различные правила.
После рассмотрения всех конфигурационных файлов просто запустите innd в качестве демона (возможен запуск из инициализационного скрипта), отслеживающего все вышележащие сервера, указанные в /usr/local/news/etc/innfeed.conf, /usr/local/news/etc/incoming.conf и /usr/local/news/etc/newsfeeds.