Ставим собственный Jabber-сервер
Поскольку я отказался от использования ICQ, решил уделить немного времени вопросам установки и настройки Jabber-сервера. Поскольку у меня есть аккаунт в Google Hosted Servises, где настроен мой домен, JID в собственном домене у меня уже есть (и друзьям-знакомым-родственникам в случае надобности сделаю), а подъем собственного Jabber-сервера я делал сугубо в исследовательских целях.Для начала о том какие бывают Jabber-сервера и
на чем их пишут.
- Djabberd - реализация на Perl
- ejabberd - наиболее популярное решение на Erlang
- jabberd14 - хорошо обросший мхом Jabber-сервер на C
- jabberd2 - это не более новая версия jabberd14, это отдельный проект, написан на C
- OpenFire - экс-WildFire, Jabber-сервер с удобным и понятным Web-интерфейсом, написан на Java
- pretzel - Jabber-сервер на Python
- OpenIM - еще один сервер на Java
Список, конечно, не полный, это те реализации, о которых я знаю. Из всего этого много образия для своих экспериментов я выбрал ejabberd. Этот сервер наиболее полно соответсвует стандартам и на этом ПО работает крупнейший Российский сервис jabber.ru, собственно поэтому он.Для установки берем ящик с FreeBSD внутри, сойдет и VDS, собственно на него я и ставил.Сама установка, как и первичная настройка, никаких сложностей из себя не представляет Делаем примерно так
# pkg_add -r erlang-lite# cd /usr/ports/net-im/ejabberd && make install clean
Пока все это собирается нужно создать SRV-записи в доменной зоне, которую будет обслуживать Jabber-сервер. Вот такие примерно
_jabber._tcp.domain.ru. IN SRV 5 0 5269 jabber.domain.ru._xmpp-server._tcp.domain.ru. IN SRV 5 0 5269 jabber.domain.ru._xmpp-client._tcp.domain.ru. IN SRV 5 0 5222 jabber.domain.ru.
Естественно, имя jabber.domain.ru должно резолвиться на тот IP, где будет установлен Jabber-сервер.Как только все собралось идем в каталог /usr/local/etc/ejabberd, и копируем файлы *.example в нормальные.Добавляем в ejabberd.cfg вот такую примерно строчку чтобы определить кто у нас будет админом
{acl, admin, {user, "user", "domain.ru"}}.
Для работы шифрования нужно сгенерировать самоподписанный сертификат либо получить настоящий, об этом я уже как-то писал, поэтому ищущих отправляю к моим прошлым заметкам.Путь к объединенному файлу, содержащему сертификат и ключ нужно будет указать в ejabberd.cfg
tls, {certfile, "/usr/local/etc/ejabberd/ssl.pem"}]},
и
{s2s_certfile, "/usr/local/etc/ejabberd/ssl.pem"}.
После чего включаем запуск сервера при старте системы и запускаем.
# echo 'ejabberd_enable="YES"' >> /etc/rc.conf# /usr/local/etc/rc.d/ejabberd start
Осталось только зарегистрировать админский аккаунт с помощью Jabber-клиента.Собственно на сегодня все. Jabber-сервер готов к использованию. О тонкостях настройки, подключении транспортов в другие IM-сети и т.п. обещаю рассказать в следующие разы.Интересное в двух словах:
- Я в последнее время перестал удивляться находя ресурсы, которым вроде бы и несвойственно быть в интернете, вот сегодня - интернет магазин мужской одежды. Ну все вроде бы хорошо, но лично мне перед покупкой вещь нужно примерить.
- Еще один интересный ресурс для повышения скила в области сео и раскрутки сайтов - Раскрутка сайта от inetManager.ru. Есть что почитать про увеличение тИЦ и PR, ускорение переиндексации сайта.
- Оценил полезность интернет-магазинов, в которых есть Моментальная доставка. Вот надо срочно на мобильник денег положить - пожалуйста заплати webmoney и получи пин-код.
Комментарии
babilon_killer
... Лучше бы объяснил как поставить его на виртуальный хостинг. Причем не так как это все пишут "Делаем примерно так
# pkg_add -r erlang-lite
# cd /usr/ports/net-im/ejabberd && make install clean" а человеческим языком! это ты для кого, для программистов писал? так им это нахрен не надо, они это и так знают!
Meg@DED
Включайте голову при прочтении и будет Вам счастье.
З.Ы. Комментарий поскипан.