helpcenter/Web/Controls/Help/Server/Linux/Community/InstallClusterCommunity/InstallClusterCommunity.ru.ascx
2017-09-12 15:40:35 +03:00

188 lines
21 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ 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>&lt;endpoint address="http://localhost:9865/teamlabJabber" binding="basicHttpBinding" contract="ASC.Core.Notify.Jabber.IJabberService" bindingConfiguration="jabber" /&gt;
&lt;endpoint address="http://localhost:9888/teamlabSignalr" binding="basicHttpBinding" contract="ASC.Core.Notify.Signalr.ISignalrService" bindingConfiguration="signalr" /&gt;
&lt;endpoint address="http://localhost:9866/teamlabSearcher" binding="basicHttpBinding" contract="ASC.FullTextIndex.ITextIndexService" bindingConfiguration="index" /&gt;
&lt;endpoint address="http://localhost:9871/teamlabNotify" binding="basicHttpBinding" contract="ASC.Notify.INotifyService" bindingConfiguration="notify" /&gt;
&lt;endpoint address="http://localhost:9882/teamlabBackup" binding="basicHttpBinding" contract="ASC.Core.Common.Contracts.IBackupService" bindingConfiguration="backup" /&gt;</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>&lt;add name="default" connectionString="Server=localhost;Database=onlyoffice;User ID=root;Password=;Pooling=True;Character Set=utf8;AutoEnlist=false" providerName="MySql.Data.MySqlClient" /&gt;</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>&lt;add name="default" connectionString="Server=localhost;Database=onlyoffice;User ID=root;Password=;Pooling=True;Character Set=utf8;AutoEnlist=false" providerName="MySql.Data.MySqlClient" /&gt;</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>&lt;section name="redisCacheClient" type="StackExchange.Redis.Extensions.Core.Configuration.RedisCachingSectionHandler, StackExchange.Redis.Extensions.Core" /&gt;</code></pre>
<p>Отредактируйте секцию <code>sessionState</code>, заменив её на:</p>
<pre class="prettyprint source linenums"><code>&lt;sessionState mode="InProc" customProvider="RedisSessionStateProvider"&gt;
&lt;providers&gt;
&lt;add name="RedisSessionStateProvider" type="RedisSessionProvider.RedisSessionStateStoreProvider, RedisSessionProvider" /&gt;
&lt;/providers&gt;
&lt;/sessionState&gt;</code></pre>
<p>И добавьте раздел в секцию <code>configuration</code>, указав нужные параметры, чтобы они содержали адрес Сервера Redis (замените значение <code>localhost</code> на фактический IP-адрес Сервера Redis или его адрес в сети Интернет) и правильный номер порта, используемого для подключения к серверу Redis:</p>
<pre class="prettyprint source linenums"><code>&lt;redisCacheClient ssl="false" connectTimeout="5000" database="0" password=""&gt;
&lt;hosts&gt;
&lt;add host="localhost" cachePort="6379" /&gt;
&lt;/hosts&gt;
&lt;/redisCacheClient&gt;</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>&lt;section name="redisCacheClient" type="StackExchange.Redis.Extensions.Core.Configuration.RedisCachingSectionHandler, StackExchange.Redis.Extensions.Core" /&gt;</code></pre>
<p>Отредактируйте секцию <code>sessionState</code>, заменив её на:</p>
<pre class="prettyprint source linenums"><code>&lt;sessionState mode="InProc" customProvider="RedisSessionStateProvider"&gt;
&lt;providers&gt;
&lt;add name="RedisSessionStateProvider" type="RedisSessionProvider.RedisSessionStateStoreProvider, RedisSessionProvider" /&gt;
&lt;/providers&gt;
&lt;/sessionState&gt;</code></pre>
<p>И добавьте раздел в секцию <code>configuration</code>, указав нужные параметры, чтобы они содержали адрес Сервера Redis (замените значение <code>localhost</code> на фактический IP-адрес Сервера Redis или его адрес в сети Интернет) и правильный номер порта, используемого для подключения к серверу Redis:</p>
<pre class="prettyprint source linenums"><code>&lt;redisCacheClient ssl="false" connectTimeout="5000" database="0" password=""&gt;
&lt;hosts&gt;
&lt;add host="localhost" cachePort="6379" /&gt;
&lt;/hosts&gt;
&lt;/redisCacheClient&gt;</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>