188 lines
21 KiB
Plaintext
188 lines
21 KiB
Plaintext
<%@ Control Language="C#" Inherits="BaseContentUserControls"%>
|
||
<%@ Register Namespace="TeamLab.Controls" Assembly="__Code" TagPrefix="cc" %>
|
||
|
||
<script runat="server">
|
||
protected override void Init()
|
||
{
|
||
PageTitle = PageCaption = "Установка Сервера совместной работы в виде кластера";
|
||
MetaKeyWords = "";
|
||
MetaDescription = "";
|
||
}
|
||
|
||
</script>
|
||
<div class="MainHelpCenter">
|
||
<h1 class="subHeaderFeaturesCaption Guides_Video_Captions">Установка Сервера совместной работы в виде кластера</h1>
|
||
<cc:LocalizeContent runat="Server" ControlName="~/Controls/Help/VariousControls/Versions/CommunityServer/CommunityServer_Current.ascx" />
|
||
<div class="keyword_block">
|
||
<ul>
|
||
<li><cc:LocalizeContent runat="Server" ControlName="~/Controls/Help/Tags/local-server/local-server.ascx" /></li>
|
||
<li><cc:LocalizeContent runat="Server" ControlName="~/Controls/Help/Tags/server-version/server-version.ascx" /></li>
|
||
<li><cc:LocalizeContent runat="Server" ControlName="~/Controls/Help/Tags/install-ONLYOFFICE/install-ONLYOFFICE.ascx" /></li>
|
||
<li><cc:LocalizeContent runat="Server" ControlName="~/Controls/Help/Tags/community-server/community-server.ascx" /></li>
|
||
<li><cc:LocalizeContent runat="Server" ControlName="~/Controls/Help/Tags/linux-version/linux-version.ascx" /></li>
|
||
</ul>
|
||
</div>
|
||
<div class="video_ground video_trips">
|
||
<h2 id="introduction">Введение</h2>
|
||
<div class="block_of_step">
|
||
<div class="screen_text">
|
||
<p>Установка и запуск <b>Сервера совместной работы</b> в виде кластера позволяет:</p>
|
||
<ul>
|
||
<li>распределенно запустить <b>Сервер совместной работы</b> и всю необходимую для него инфраструктуру;</li>
|
||
<li>гибко масштабировать производительность <b>Сервера совместной работы</b>;</li>
|
||
<li>обеспечить отказоустойчивость и высокий уровень доступности приложения.</li>
|
||
</ul>
|
||
<p>В данной инструкции объясняется, как установить <b>Сервер совместной работы</b> и запустить его в качестве кластерного сервиса.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<h2 id="ClusterStructure">Структура кластера</h2>
|
||
<div class="block_of_step">
|
||
<div class="screen_text">
|
||
<p>Структура кластера <b>Сервера совместной работы</b> выглядит следующим образом:</p>
|
||
<p>
|
||
<img alt="Установка Сервера совместной работы в виде кластера" src="<%=VirtualPathUtility.ToAbsolute("~/images/Help/ru/community_cluster.jpg")%>" />
|
||
</p>
|
||
<p>Используются следующие элементы кластера:</p>
|
||
<ul>
|
||
<li><b>Балансировщик нагрузки</b> - сервер, который получает запросы от пользователей и перенаправляет их на внутренние сервера с установленным <b>Сервером совместной работы</b>.</li>
|
||
<li><b>Сервер совместной работы 1</b> ... <b>Сервер совместной работы N</b> - группа серверов с установленным <b>Сервером совместной работы</b>, которая обрабатывает полученные запросы от пользователей и обеспечивает возможность работы на порталах.</li>
|
||
<li><b>Сервер служб</b> - сервер (или группа серверов), который используется для запуска всех служб, необходимых для правильного функционирования <b>Сервера совместной работы</b>.</li>
|
||
<li><b>Сервер MySQL</b> - сервер (или группа серверов), который используется для хранения базы данных, в которой содержатся все данные портала.</li>
|
||
<li><b>Сервер Redis</b> - сервер (или группа серверов), который используется как хранилище сессий и блокировок.</li>
|
||
<li><b>Сервер хранилища</b> - сервер (или группа серверов), который используется как хранилище для рабочих файлов.</li>
|
||
</ul>
|
||
<div class="notehelp"><b>Сервер служб</b>, <b>Сервер MySQL</b>, <b>Сервер Redis</b>, <b>Сервер хранилища</b> в данном случае являются общими ресурсами для группы серверов с установленным <b>Сервером совместной работы</b>.</div>
|
||
<p>Таким образом, для того чтобы создать рабочий кластер, требуется выполнить следующие задачи:</p>
|
||
<ol>
|
||
<li>Запустить группу серверов с установленным <b>Сервером совместной работы</b>;</li>
|
||
<li>настроить каждый установленный экземпляр <b>Сервера совместной работы</b> для корректной работы с общими ресурсами;</li>
|
||
<li>перераспределить входящие запросы пользователей на группу серверов с установленным <b>Сервером совместной работы</b>.</li>
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
<h2 id="RunCommunityServer">Установка и запуск группы Серверов совместной работы</h2>
|
||
<div class="block_of_step">
|
||
<div class="screen_text">
|
||
<p>Установка <b>Сервера совместной работы</b> подробно описана в этих статьях: <a href="<%=VirtualPathUtility.ToAbsolute("~/server/linux/community/linux-installation.aspx")%>">для Debian, Ubuntu и производных</a> и <a href="<%=VirtualPathUtility.ToAbsolute("~/server/linux/community/linux-installation-centos.aspx")%>">для CentOS и производных</a>. Установка должна выполняться одним и тем же образом для каждого сервера, на котором требуется установить <b>Сервер совместной работы</b>.</p>
|
||
<p>Когда установка будет выполнена, на машинах с <b>Сервером совместной работы</b> необходимо остановить все службы, которые будут запущены на отдельных компьютерах:</p>
|
||
<pre><code>service onlyofficeFeed stop
|
||
service onlyofficeIndex stop
|
||
service onlyofficeJabber stop
|
||
service onlyofficeMailAggregator stop
|
||
service onlyofficeMailWatchdog stop
|
||
service onlyofficeNotify stop
|
||
service onlyofficeBackup stop
|
||
service redis stop
|
||
service mysql stop
|
||
service god stop</code></pre>
|
||
<p>И запустить те службы, которые должны выполняться на этих серверах:</p>
|
||
<pre><code>service monoserve start</code></pre>
|
||
<p>Когда вы сделаете это, можно переходить к следующему шагу.</p>
|
||
</div>
|
||
</div>
|
||
<h2 id="RunServicesServer">Установка служб</h2>
|
||
<div class="block_of_step">
|
||
<div class="screen_text">
|
||
<p>Для служб требуется отдельный выделенный сервер. Службы можно установить или путем компиляции только нужных компонентов из исходных файлов, или путем установки из <code>DEB</code>/<code>RPM</code>-пакета по инструкциям, приведенным в предыдущем шаге.</p>
|
||
<h5>Остановка ненужных служб</h5>
|
||
<p>Когда установка будет выполнена, необходимо остановить службы, которые не нужны на этом компьютере:</p>
|
||
<pre><code>service monoserve stop
|
||
service redis stop
|
||
service mysql stop
|
||
service god stop</code></pre>
|
||
<h5>Запуск служб</h5>
|
||
<p>И запустить те службы, которые должны выполняться на этом сервере:</p>
|
||
<pre><code>service onlyofficeFeed start
|
||
service onlyofficeIndex start
|
||
service onlyofficeJabber start
|
||
service onlyofficeMailAggregator start
|
||
service onlyofficeMailWatchdog start
|
||
service onlyofficeNotify start
|
||
service onlyofficeBackup start</code></pre>
|
||
<h5>Подключение Сервера совместной работы к службам</h5>
|
||
<p>После этого необходимо подключить компьютеры с <b>Сервером совместной работы</b> к установленным службам. Для этого откройте файл <code>/var/www/onlyoffice/WebStudio/Web.config</code> <b>Сервера совместной работы</b>, найдите приведенные ниже строки и отредактируйте их, чтобы они содержали адрес Сервера служб (в каждом случае замените значение <code>localhost</code> на фактический IP-адрес Сервера служб или его адрес в сети Интернет):</p>
|
||
<pre class="prettyprint source linenums"><code><endpoint address="http://localhost:9865/teamlabJabber" binding="basicHttpBinding" contract="ASC.Core.Notify.Jabber.IJabberService" bindingConfiguration="jabber" />
|
||
<endpoint address="http://localhost:9888/teamlabSignalr" binding="basicHttpBinding" contract="ASC.Core.Notify.Signalr.ISignalrService" bindingConfiguration="signalr" />
|
||
<endpoint address="http://localhost:9866/teamlabSearcher" binding="basicHttpBinding" contract="ASC.FullTextIndex.ITextIndexService" bindingConfiguration="index" />
|
||
<endpoint address="http://localhost:9871/teamlabNotify" binding="basicHttpBinding" contract="ASC.Notify.INotifyService" bindingConfiguration="notify" />
|
||
<endpoint address="http://localhost:9882/teamlabBackup" binding="basicHttpBinding" contract="ASC.Core.Common.Contracts.IBackupService" bindingConfiguration="backup" /></code></pre>
|
||
</div>
|
||
</div>
|
||
<h2 id="InstallMySQL">Установка и подключение MySQL</h2>
|
||
<div class="block_of_step">
|
||
<div class="screen_text">
|
||
<h5>Установка и создание баз данных</h5>
|
||
<p>Установите MySQL на отдельном сервере. После установки создайте и заполните таблицы базы данных. Для этого перейдите в папку <code>/var/www/onlyoffice/Sql/</code> и запустите следующие скрипты:</p>
|
||
<pre><code>onlyoffice.data.sql
|
||
onlyoffice.sql
|
||
onlyoffice.resources.sql</code></pre>
|
||
<h5>Редактирование файла конфигурации Сервера совместной работы</h5>
|
||
<p>Затем откройте файл <code>/var/www/onlyoffice/WebStudio/web.connections.config</code> <b>Сервера совместной работы</b>, найдите приведенную ниже строку и отредактируйте ее, чтобы она содержала адрес Сервера MySQL в качестве значения параметра <b>Server</b> (замените значение <code>localhost</code> на фактический IP-адрес Сервера MySQL или его адрес в сети Интернет), правильное имя базы данных и пароль:</p>
|
||
<pre class="prettyprint source linenums"><code><add name="default" connectionString="Server=localhost;Database=onlyoffice;User ID=root;Password=;Pooling=True;Character Set=utf8;AutoEnlist=false" providerName="MySql.Data.MySqlClient" /></code></pre>
|
||
<h5>Редактирование файла конфигурации Сервера служб</h5>
|
||
<p>То же самое надо сделать для Сервера служб: требуется изменить файл <code>/var/www/onlyoffice/WebStudio/TeamLabSvc.exe.Config</code> <b>Сервера служб</b>. Найдите приведенную ниже строку и отредактируйте ее, чтобы она содержала адрес Сервера MySQL в качестве значения параметра <b>Server</b> (замените значение <code>localhost</code> на фактический IP-адрес Сервера MySQL или его адрес в сети Интернет), правильное имя базы данных и пароль:</p>
|
||
<pre class="prettyprint source linenums"><code><add name="default" connectionString="Server=localhost;Database=onlyoffice;User ID=root;Password=;Pooling=True;Character Set=utf8;AutoEnlist=false" providerName="MySql.Data.MySqlClient" /></code></pre>
|
||
</div>
|
||
</div>
|
||
<h2 id="InstallRedis">Установка и подключение Redis</h2>
|
||
<div class="block_of_step">
|
||
<div class="screen_text">
|
||
<h5>Редактирование файла конфигурации Сервера совместной работы</h5>
|
||
<p>Установите Redis на отдельном сервере. После установки откройте файл <code>/var/www/onlyoffice/WebStudio/Web.config</code> <b>Сервера совместной работы</b>, добавьте в секцию <code>configSections</code> строку:</p>
|
||
<pre class="prettyprint source linenums"><code><section name="redisCacheClient" type="StackExchange.Redis.Extensions.Core.Configuration.RedisCachingSectionHandler, StackExchange.Redis.Extensions.Core" /></code></pre>
|
||
<p>Отредактируйте секцию <code>sessionState</code>, заменив её на:</p>
|
||
<pre class="prettyprint source linenums"><code><sessionState mode="InProc" customProvider="RedisSessionStateProvider">
|
||
<providers>
|
||
<add name="RedisSessionStateProvider" type="RedisSessionProvider.RedisSessionStateStoreProvider, RedisSessionProvider" />
|
||
</providers>
|
||
</sessionState></code></pre>
|
||
<p>И добавьте раздел в секцию <code>configuration</code>, указав нужные параметры, чтобы они содержали адрес Сервера Redis (замените значение <code>localhost</code> на фактический IP-адрес Сервера Redis или его адрес в сети Интернет) и правильный номер порта, используемого для подключения к серверу Redis:</p>
|
||
<pre class="prettyprint source linenums"><code><redisCacheClient ssl="false" connectTimeout="5000" database="0" password="">
|
||
<hosts>
|
||
<add host="localhost" cachePort="6379" />
|
||
</hosts>
|
||
</redisCacheClient></code></pre>
|
||
<h5>Редактирование файла конфигурации Сервера служб</h5>
|
||
<p>То же самое надо сделать для Сервера служб: требуется изменить файл <code>/var/www/onlyoffice/WebStudio/TeamLabSvc.exe.Config</code> <b>Сервера служб</b>. Добавьте в секцию <code>configSections</code> строку:</p>
|
||
<pre class="prettyprint source linenums"><code><section name="redisCacheClient" type="StackExchange.Redis.Extensions.Core.Configuration.RedisCachingSectionHandler, StackExchange.Redis.Extensions.Core" /></code></pre>
|
||
<p>Отредактируйте секцию <code>sessionState</code>, заменив её на:</p>
|
||
<pre class="prettyprint source linenums"><code><sessionState mode="InProc" customProvider="RedisSessionStateProvider">
|
||
<providers>
|
||
<add name="RedisSessionStateProvider" type="RedisSessionProvider.RedisSessionStateStoreProvider, RedisSessionProvider" />
|
||
</providers>
|
||
</sessionState></code></pre>
|
||
<p>И добавьте раздел в секцию <code>configuration</code>, указав нужные параметры, чтобы они содержали адрес Сервера Redis (замените значение <code>localhost</code> на фактический IP-адрес Сервера Redis или его адрес в сети Интернет) и правильный номер порта, используемого для подключения к серверу Redis:</p>
|
||
<pre class="prettyprint source linenums"><code><redisCacheClient ssl="false" connectTimeout="5000" database="0" password="">
|
||
<hosts>
|
||
<add host="localhost" cachePort="6379" />
|
||
</hosts>
|
||
</redisCacheClient></code></pre>
|
||
</div>
|
||
</div>
|
||
<h2 id="ConfigureStorage">Настройка доступа к хранилищу</h2>
|
||
<div class="block_of_step">
|
||
<div class="screen_text">
|
||
<p>Теперь необходимо настроить доступ к Серверу хранилища. Хотя он размещается на отдельном компьютере, лучше всего обеспечить к нему доступ, смонтировав его, как локальную папку. В этом случае не придется ничего дополнительно настраивать.</p>
|
||
<div class="notehelp nh_notice">
|
||
Настоятельно рекомендуется не менять путь к файловому хранилищу при настройке хранилища. Вместо этого можно привязать общую сетевую папку к папке <code>/var/www/onlyoffice/Data</code>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<%-- <h2 id="DistributeRequests">Распределение входящих запросов</h2>
|
||
<div class="block_of_step">
|
||
<div class="screen_text">
|
||
<p>Для распределения входящих запросов пользователей рекомендуется использовать прокси-сервер <a target="_blank" href="http://www.haproxy.org/">HAProxy</a>. Пример файла конфигурации доступен <a target="_blank" href="https://github.com/ONLYOFFICE/document-server-proxy/blob/master/haproxy-1.4/cluster/haproxy.cfg">здесь</a>.</p>
|
||
<p>Сохраните его и откройте на редактирование. Найдите строки, которые выглядят следующим образом:</p>
|
||
<pre><code>server onlyoffice-documentserver-X backendserver-address-X check inter 2000 rise 2 fall 3
|
||
</code></pre>
|
||
<p>и отредактируйте значение <code>backendserver-address-X</code>, заменив его на адреса серверов с установленным <b>Сервером совместной работы</b>.</p>
|
||
<p>Количество строк должно быть равно количеству внутренних серверов. Например, если у вас три сервера с установленным <b>Сервером совместной работы</b>, эта часть файла конфигурации должна выглядеть следующим образом:</p>
|
||
<pre><code>server onlyoffice-documentserver-1 http://documentserver1.example.com check inter 2000 rise 2 fall 3
|
||
server onlyoffice-documentserver-2 http://documentserver2.example.com check inter 2000 rise 2 fall 3
|
||
server onlyoffice-documentserver-3 http://documentserver3.example.com check inter 2000 rise 2 fall 3
|
||
</code></pre>
|
||
</div>
|
||
</div>--%>
|
||
</div> |