vc-www #
Контейнер с веб сервером:
- отдает статический контент
- может терминировать SSL
- выполняет роль reverse proxy для остальных сервисов
Настраивается через переменные окружения.
Порты #
Контейнер запускает следующие порты:
80для обычных сайтов http443для SSL сайтов https
Настройка сайтов #
Контейнер поддерживает установку множества сайтов, например один для внешних пользователей с публичным доменным именем, другой для внутренних пользователей с локальным доменным именем.
По-умолчанию разворачивается один сайт, на порту 80.
VC_WWW_SITESсписок имен сайтов (через пробел) c plain http доступом. Разворачиваются на порт80. НужныVC_WWW_SSL_SITESсписок имен сайтов (через пробел) c tls https доступом. Разворачиваются на порт443
Настройка SSL #
Для SSL сайтов необходимо подложить корректные сертификаты и ключи в директорию /srv/cert
sitename_fullchain.pemцепочка сертификата сайта (влкючая intermediate CA) в формате PEMsitename.keyключ к сертификату
sitename - имя сайта, указанное в переменной VC_WWW_SSL_SITES
Если файлы с сертификатами отсутствуют, то будут подложены тестовые сертификаты.
Доступ к бэкенд контейнерам #
По-умолчанию vc-www обращается к проксируемым сервисам по имени сервиса compose файла. Адреса и порты сервисов можно изменить используя следующие переменные окружения:
| переменная | значение по-умолчанию |
|---|---|
| VC_ADMIN_HOST | vc-admin |
| VC_ADMIN_PORT | 9105 |
| VC_AUTH_HOST | vc-auth |
| VC_AUTH_PORT | 9101 |
| VC_SERVER_HOST | vc-server |
| VC_SERVER_PORT | 9103 |
| VC_MSG_HOST | vc-msg |
| VC_MSG_PORT | 9106 |
| VC_FILESERVER_HOST | vc-fileserver |
| VC_FILESERVER_PORT | 9108 |
| VC_STAT_HOST | vc-stat |
| VC_STAT_PORT | 9104 |
| VC_STATCHART_HOST | vc-statchart |
| VC_STATCHART_PORT | 9113 |
| VC_HISTORY_HOST | vc-history |
| VC_HISTORY_PORT | 9107 |
| VC_SURL_HOST | vc-surl |
| VC_SURL_PORT | 9102 |
Разграничение доступа к ресурсам #
Поддерживается разграничение доступа к ресурсам (API) SVA. Например, если доступ к административному и агентскому интерфейсам требуется разрешить только из локальной сети.
VC_WWW_INTERNAL_ACCESSперечень ip адресов или сетей в формате192.168.100.0/24разделенные запятой. Задает доступность веб интерфейсов (и соответствующих методов API).VC_WWW_FILES_ACCESSопределяет доступ к возможности скачать файл. Если параметр задан, то публичные пользователи (например, клиенты) не смогут скачать переданные в чате файлы (даже свои), но возможность отправить файл в чат сохранится. Формат аналогиченVC_WWW_INTERNAL_ACCESS
Ограничения задаются для всех сайтов.
Примеры compose файлов #
Запуск в докере локально
services:
vc-www:
image: cr.repo.altuera.ru/sva/prod/vc-www:${SVA_VERSION}
restart: unless-stopped
ports:
- 8010:80
- 8011:443
environment:
VC_WWW_SSL_SITES: localhost
Установка SVA на один сервер (за traefik)
services:
balancer:
image: cr.repo.altuera.ru/sva/prod/traefik:2.10.4
restart: unless-stopped
ports:
- 80:80
- 443:443
environment:
TRAEFIK_LOG_LEVEL: INFO
TRAEFIK_API_DASHBOARD: false
TRAEFIK_PROVIDERS_DOCKER: true
TRAEFIK_PROVIDERS_DOCKER_EXPOSEDBYDEFAULT: false
TRAEFIK_ENTRYPOINTS_HTTP_ADDRESS: :80
TRAEFIK_ENTRYPOINTS_HTTPS_ADDRESS: :443
TRAEFIK_ENTRYPOINTS_HTTPS_HTTP_TLS: true
TRAEFIK_CERTIFICATESRESOLVERS_DEFAULT_ACME_TLSCHALLENGE: true
TRAEFIK_CERTIFICATESRESOLVERS_DEFAULT_ACME_EMAIL: your.email@domain.ru
TRAEFIK_CERTIFICATESRESOLVERS_DEFAULT_ACME_STORAGE: /acme/acme.json
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ${ACME_DIR}:/acme
labels:
traefik.enable: true
vc-www:
image: cr.repo.altuera.ru/sva/prod/vc-www:${SVA_VERSION}
restart: unless-stopped
labels:
traefik.enable: true
traefik.http.routers.vc-www.entrypoints: https
traefik.http.routers.vc-www.rule: Host(`${FQDN}`)
traefik.http.routers.vc-www.tls.certresolver: default
traefik.http.services.vc-www.loadbalancer.server.port: 80
Установка SVA на несколько серверов
services:
vc-www:
image: cr.repo.altuera.ru/sva/prod/vc-www:${SVA_VERSION}
restart: unless-stopped
ports:
- 443:443
environment:
VC_WWW_SSL_SITES: ${PUBLIC_FQDN} ${INTERNAL_FQDN}
VC_WWW_INTERNAL_ACCESS: 10.0.0.0/8 192.168.0.0/16
VC_ADMIN_HOST: ${HOST_APP}
VC_AUTH_HOST: ${HOST_APP}
VC_SERVER_HOST: ${HOST_APP}
VC_SURL_HOST: ${HOST_APP}
VC_MSG_HOST: ${HOST_APP}
VC_FILESERVER_HOST: ${HOST_APP}
VC_HISTORY_HOST: ${HOST_APP}
VC_STAT_HOST: ${HOST_APP}
VC_STATCHART_HOST: ${HOST_APP}
volumes:
- /srv/certificates/cert_fullchain.pem:/srv/cert/${PUBLIC_FQDN}_fullchain.pem:ro
- /srv/certificates/cert.key:/srv/cert/${PUBLIC_FQDN}.key:ro
- /srv/certificates/cert_fullchain.pem:/srv/cert/${INTERNAL_FQDN}_fullchain.pem:ro
- /srv/certificates/cert.key:/srv/cert/${INTERNAL_FQDN}.key:ro