Свой сервер: подробное руководство по установке Prosody: различия между версиями

м
м (+маркер)
 
(не показано 7 промежуточных версий этого же участника)
Строка 90: Строка 90:
}}
}}


В каталогах сервера не обязательно должен быть какой-то контент, хотя, например, на основном домене можно разместить какую-то страничку, посвященную jabber-серверу, а на поддомене '''conference''' разместить чат-логи [[Конференции|конференций]]. Субдомен '''upload''' можно приспособить под загружаемые через HTTP Upload файлы, чтобы в дальнейшем их раздавал веб-сервер<ref name="http_upload">В таком случае ему нужно обеспечить доступ к каталогу '''/var/lib/prosody/http_upload/''' - а лучше указать опцию '''http_upload_path''' с путем за пределами домашнего каталога Prosody, плюс обеспечить нужные права веб-серверу, чтобы он мог читать файлы, загруженные через jabber-сервер. Такое решение имеет еще одно преимущество: разнообразные клиенты (не только Jabber) будут гораздо охотнее показывать превью для обычных HTTP/HTTPS-ссылок (т.е., на 80 или 443-м порту), а не тех, где контент отдается на "необычном" порту - вроде 5281 в данном примере.</ref>.
В каталогах сервера не обязательно должен быть какой-то контент, хотя, например, на основном домене можно разместить какую-то страничку, посвященную jabber-серверу, а на поддомене '''conference''' разместить чат-логи [[Конференции|конференций]]. Субдомен '''upload''' можно приспособить под загружаемые через HTTP Upload файлы, чтобы в дальнейшем их раздавал веб-сервер<ref name="http_upload">В таком случае ему нужно обеспечить доступ к каталогу '''/var/lib/prosody/upload*''', плюс обеспечить нужные права веб-серверу, чтобы он мог читать файлы, загруженные через jabber-сервер. Альтернативный вариант - использовать веб-сервер, обслуживающий домен '''upload.EXAMPLE.COM''' в качестве прокси и заворачивающий все запросы на https://upload.EXAMPLE.COM:5281/file_share/. Такое решение имеет еще одно преимущество: разнообразные клиенты (не только Jabber) будут гораздо охотнее показывать превью для обычных HTTP/HTTPS-ссылок (т.е., на 80 или 443-м порту), а не тех, где контент отдается на "необычном" порту - вроде 5281 в данном примере.</ref>.


После всех приготовлений<ref>Более подробно можно почитать тут: [[Свой сервер: подготовка веб-сервера и сертификатов]]</ref> создайте все необходимые сертификаты. Для этого воспользуйтесь следующими командами (выполнять надо от пользователя '''root'''):
После всех приготовлений<ref>Более подробно можно почитать тут: [[Свой сервер: подготовка веб-сервера и сертификатов]]</ref> создайте все необходимые сертификаты. Для этого воспользуйтесь следующими командами (выполнять надо от пользователя '''root'''):
Строка 104: Строка 104:
После успешного выполнения команд будет выдана информация о созданном сертификате, в том числе 2 файла - цепочка ключей и приватный ключ - сохраните эти пути для дальнейшего использования, они нам еще пригодятся. Всего получится 10 файлов. certbot обновляет сертификаты автоматически, если срок их истечения составляет менее 30 дней - т.е., обновление происходит раз в 2 месяца.
После успешного выполнения команд будет выдана информация о созданном сертификате, в том числе 2 файла - цепочка ключей и приватный ключ - сохраните эти пути для дальнейшего использования, они нам еще пригодятся. Всего получится 10 файлов. certbot обновляет сертификаты автоматически, если срок их истечения составляет менее 30 дней - т.е., обновление происходит раз в 2 месяца.


Так как Prosody работает от своего пользователя и не имеет доступа к сертификатам, созданным certbot от рута, то надо каким-то образом предоставить доступ ejabberd'у к сертификатам. Самым простым и корректным вариантом на сейчас является выполнение следующей команды от рута<ref>https://prosody.im/doc/letsencrypt</ref>:
Так как Prosody работает от своего пользователя и не имеет доступа к сертификатам, созданным certbot от рута, то надо каким-то образом предоставить серверу доступ к сертификатам. Самым простым и корректным вариантом на сейчас является выполнение следующей команды от рута<ref>https://prosody.im/doc/letsencrypt</ref>:


  prosodyctl --root cert import /etc/letsencrypt/live
  prosodyctl --root cert import /etc/letsencrypt/live
Строка 169: Строка 169:
  prosodyctl install --server=https://modules.prosody.im/rocks/ mod_register_web # Поддержка регистрации через веб-страницу
  prosodyctl install --server=https://modules.prosody.im/rocks/ mod_register_web # Поддержка регистрации через веб-страницу
  prosodyctl install --server=https://modules.prosody.im/rocks/ mod_mam_adhoc # Возможность управлять настройками MAM-архива из jabber-клиента
  prosodyctl install --server=https://modules.prosody.im/rocks/ mod_mam_adhoc # Возможность управлять настройками MAM-архива из jabber-клиента
prosodyctl install --server=https://modules.prosody.im/rocks/ mod_throttle_presence # Ограничиваем трафик статусов
prosodyctl install --server=https://modules.prosody.im/rocks/ mod_reload_modules # Ставим для возможности обновлять сертификаты без перезагрузки


Конфигурационный файл у Prosody состоит из нескольких секций:
Конфигурационный файл у Prosody состоит из нескольких секций:
Строка 278: Строка 280:
"external_services"; -- calls
"external_services"; -- calls
"admin_adhoc"; -- ad-hoc administration of server
"admin_adhoc"; -- ad-hoc administration of server
"reload_modules";
}
}
reload_modules = { "tls" }


-- These modules are auto-loaded, but should you want
-- These modules are auto-loaded, but should you want
Строка 653: Строка 658:
* [https://open-networks.ru/d/67-prosody-im-v012x-ustanovka-i-nastroyka-xmpp-servera-coturn-fail2ban Очень подробное пользовательское руководство по настройке Prosody]
* [https://open-networks.ru/d/67-prosody-im-v012x-ustanovka-i-nastroyka-xmpp-servera-coturn-fail2ban Очень подробное пользовательское руководство по настройке Prosody]
* [https://www.8host.com/blog/ustanovka-prosody-v-ubuntu-18-04/ Еще одно руководство по установке и настройке]
* [https://www.8host.com/blog/ustanovka-prosody-v-ubuntu-18-04/ Еще одно руководство по установке и настройке]
* [https://pingvinus.ru/note/xmmp-prosody ...и еще одно]


[[Category:Свой сервер]]
[[Category:Свой сервер]]