Требования к сетевым настройкам сервера
Информация в этом разделе предназначена для системных администраторов, которые настраивают сетевое и серверное оборудование Вашей компании.
Webim Server требует настройки следующих параметров и доступов:
| Параметр | Значение | Особенности |
|---|---|---|
| Порт HTTPS | 443 | Настройте доступ по 443 TCP-порту извне. Если сайт организации работает по HTTPS, то и запросы приложений пойдут к Серверу Webim по этому порту (рекомендован по сравнению с HTTP/80). Webim API/SDK также работают по HTTPS/443. |
| Порт HTTP | 80 | Настройте доступ по 80 TCP-порту извне. Если ваш сайт работает по HTTP, то запросы к Серверу Webim пойдут по HTTP/80 (не рекомендуется). |
| Порт Chat Backend | 8260 (по умолчанию) | Данный TCP-порт должен быть свободен и открыт внутри (на localhost) на сервере, доступ извне к нему не требуется. Можно выбрать любой другой порт, но тогда необходимо перенастроить Chat Backend. |
| Порт Admin Backend | 6001 (по умолчанию) | TCP-порт административного бэкенда (Admin Backend). Порт должен быть свободен и открыт на localhost на сервере Webim, прямой доступ извне, как правило, не требуется. При изменении порта необходимо скорректировать конфигурацию Admin Backend и проксирующего веб-сервера/балансировщика. |
| Порт es-storager | 8000 (по умолчанию) | HTTP-порт сервиса es-storager (хранение и выдача истории диалогов/отчётности). Значение по умолчанию задаётся переменной окружения STATS_WEB_PORT. Обычно порт открыт только на localhost или во внутренней сети; прямой доступ из интернета не требуется. При изменении порта необходимо обновить конфигурацию es-storager и проксирующего веб-сервера/балансировщика. |
| Порт php2db | 18111 (по умолчанию) | TCP-порт служебного бэкенда php2db. Порт должен быть свободен и открыт на localhost на сервере Webim, доступ извне к нему не требуется. При изменении порта необходимо обновить параметры запуска php2db и настройки компонентов, которые обращаются к этому сервису. |
| Порт СУБД | 3306 (по умолчанию для MySQL) | Можно настроить на любой другой. |
| SSL/TLS сертификат | Если вы решили использовать HTTPS, то вам понадобится SSL/TLS сертификат к своему домену. Помимо прочих, возможен следующий вариант размещения сертификата: сам по себе он может лежать на вашем балансировщике, после которого трафик будет перенаправляться на другое доменное имя по HTTP или HTTPS. Важно: самоподписные сертификаты SSL/TLS не поддерживаются. Можно самостоятельно попробовать внести изменения в систему (библиотеки, системные пакеты и настройки) серверов, чтобы сертификаты воспринимались как доверенные, но корректная работа Webim в этом случае не гарантируется. | |
| Запись в DNS | например, webim.yourdomain.com или myaccount.webim.ru |
Для работы Webim требуется выделенное доменное имя (поддомен), доступное в сети использования чата. Домен должен быть в полном распоряжении Webim (не использоваться другими сервисами). Подробнее — в разделе «Требования к доменному имени» ниже. |
| SMTP(S): server IP, порт, логин-пароль | Для отправки сообщений по электронной почте нужны реквизиты сервера, доступного по Secure SMTP, — например, Mailgun. Значение не должно быть пустой строкой. |
Требования к доменному имени
Для работы Webim Server требуется ровно одно доменное имя сервера (FQDN), например webim.yourdomain.com или myaccount.webim.ru. Доменное имя сервера обязательно должно быть третьего уровня (поддомен).
Работа Webim Server без доменного имени (например, по IP-адресу или на адресе без DNS) не поддерживается: в конфигурации должен быть указан FQDN, который корректно разрешается в DNS и доступен в сети использования чата.
Домен используется для всех обращений к Webim (загрузка статики виджета, запросы веб- и мобильных клиентов, WebSocket-соединения, API). Поэтому домен должен соответствовать следующим требованиям:
-
Домен должен быть доступен в той сети, где будет использоваться чат:
-
если чат используется в публичном интернете — домен должен быть опубликован в публичном DNS и указывать на доступный извне адрес/балансировщик;
-
если чат используется только во внутренней сети — доменное имя должно корректно разрешаться (внутреннем DNS) и быть доступным из этой сети.
-
-
Домен должен быть выделен под Webim и не использоваться другими сервисами (в том числе «под путём» вида
https://example.com/webim):-
Webim не предполагает работу на одном домене с другими приложениями;
-
одного URL-префикса
/webim/*недостаточно: чату требуются все URL-адреса, описанные в статье Необходимые доступы на сервер со стороны посетителя.
-
-
Webim может одновременно работать только по одному домену (FQDN). Использование нескольких доменов (например, отдельных доменов для панели, виджета и API) не поддерживается. Все ссылки генерируются с доменом, указанным в конфигурации (например, в
/etc/webim/main.ini.d/hosted-main.ini:base_domain). IP-адрес вместо домена не поддерживается. -
Домен должен быть доступен:
-
со стороны посетителей (браузеры/мобильные SDK) и рабочих мест операторов/администраторов;
-
с самого сервера Webim и внутренней инфраструктуры (например, если используются обращения по доменному имени через прокси/балансировщик). Рекомендуется обеспечить корректное разрешение имени и маршрутизацию.
-
-
При использовании HTTPS домен должен иметь действующий SSL/TLS сертификат от доверенного УЦ (см. строку «SSL/TLS сертификат» выше).
По требованию заказчику может быть интегрирована система мониторинга, автоматического резервирования (backup/restore), балансировки нагрузки (рекомендуются).
Входящие подключения к серверу Webim (INBOUND)
В таблице перечислены порты, на которых компоненты Webim Server принимают входящие TCP-соединения.
| Назначение | Порт/протокол (по умолчанию) | Доступность | Примечание |
|---|---|---|---|
| Веб-интерфейсы и API (HTTPS) | 443/tcp | Из сети, где используется чат (публичная или корпоративная сеть) | Рекомендуемый вариант доступа. Webim API/SDK также работают по HTTPS/443. |
| Веб-интерфейсы и API (HTTP) | 80/tcp | Из сети, где используется чат | Используется только если вы не включаете HTTPS (не рекомендуется) или для редиректа на HTTPS. |
| Chat Backend | 8260/tcp | Обычно только localhost/внутренняя сеть |
Порт должен быть свободен. При изменении порта требуется перенастройка Chat Backend. |
| Admin Backend | 6001/tcp | Обычно только localhost/внутренняя сеть |
Порт должен быть свободен. При изменении порта требуется перенастройка Admin Backend и проксирующего веб-сервера/балансировщика. |
php2db |
18111/tcp | Обычно только localhost/внутренняя сеть |
Порт должен быть свободен. При изменении порта требуется обновить параметры запуска php2db и настройки компонентов, которые обращаются к этому сервису. |
es-storager (HTTP) |
STATS_WEB_PORT (по умолчанию 8000/tcp) |
Обычно только localhost/внутренняя сеть |
Порт должен быть свободен для узла/контейнера es-storager. |
| Speller (HTTP) | API_WEB_PORT (по умолчанию 8000/tcp) |
Обычно только localhost/внутренняя сеть |
Порт должен быть свободен для узла/контейнера Speller. Если es-storager и Speller запускаются на одном хосте без сетевой изоляции, назначьте разные порты. |
Если часть компонентов запускается на отдельных узлах, откройте доступ к их портам только из доверенной сети (например, из подсети серверов Webim) и ограничьте доступ из внешней сети.
Исходящие подключения с сервера Webim (OUTBOUND)
Если хранилища или внешние сервисы развёрнуты на отдельных узлах, разрешите исходящие TCP-соединения с сервера Webim на соответствующие порты.
Указаны значения по умолчанию. Если порт изменён в конфигурации сервиса, используйте фактическое значение.
| Назначение | Порт/протокол (по умолчанию) | Когда требуется |
|---|---|---|
| Реляционная СУБД MySQL/MariaDB | 3306/tcp | При использовании MySQL/MariaDB на отдельном сервере. |
| Реляционная СУБД PostgreSQL | 5432/tcp | При использовании PostgreSQL на отдельном сервере. |
| ClickHouse (HTTP) | 8123/tcp | Если используется Статистика v2 и ClickHouse вынесен на отдельный сервер. |
| ClickHouse (native) | 9000/tcp | Если используемый драйвер/интеграция ClickHouse требует нативный протокол. |
| Redis | 6379/tcp | Если используется Redis (например, для дельта-прокси или масштабирования Admin Backend) и он вынесен на отдельный сервер. |
| Elasticsearch | 9200/tcp | Если используется Elasticsearch для поиска в Истории диалогов и он вынесен на отдельный сервер. |
| SMTP(S)-сервер | Порт SMTP-сервера | Если включена отправка e-mail уведомлений. Откройте исходящие соединения на порт, указанный в настройках SMTP. |
Подробные требования к хранилищам (включая версии и дополнительные параметры) приведены в статье Требования к хранилищу.
Prometheus
Webim Server не устанавливает исходящих соединений к Prometheus: Prometheus сам опрашивает endpoint /metrics.
Если Prometheus развёрнут на отдельном узле, разрешите входящие соединения с Prometheus на порты компонентов, с которых собираются метрики:
- Admin Backend:
/metricsна порту 6001/tcp (по умолчанию). - Chat Backend: метрики по умолчанию выключены; при включении укажите параметр запуска
--prometheus_port={port}и откройте входящие соединения на выбранный порт.
Подробности — в статье Мониторинг Webim Server через Prometheus.
SSL/TLS сертификат
Если используется HTTPS, необходим SSL/TLS сертификат для домена, по которому пользователи и приложения обращаются к серверу Webim. Самоподписные сертификаты SSL/TLS не поддерживаются.
Дополнительно
По требованию заказчика может быть интегрирована система мониторинга, автоматического резервирования (backup/restore), балансировки нагрузки (рекомендуются).