# Можно ли поддерживать российский и зарубежный контуры как единую схему?
# Симптомы

Конфигурация с несколькими балансировщиками.
Необходимо настроить две и более витрины, которые будут находиться в разных географических точках и с разными доменными именами, которые будут ходить в один и тот же инстанс Swarmica. Как это сделать?

# Решение

В данной статье приводится решение для двух внешних балансировщиков nginx, по аналогии можно применять решение и для другого количества и типов балансировщиков.

![](https://support.swarmica.com/attachments/v/R/vRH4xYujiLYMF1NC_a/L7_Balancer.jpg)

### Подготовка Swarmica

1\. В файле `/root/swarmica/.env` добавьте адреса балансировщиков в переменную `DJANGO_ALLOWED_HOSTS`:

```txt
DJANGO_ALLOWED_HOSTS=my.swarmica.tld,balancer1.swarmica.tld,balancer2.swarmica.tld
```

2\. В файле `/root/swarmica/docker-compose.yml` везде, где используется директива `Host`, добавьте адреса балансировщиков, например, так:

```yaml
services:

  frontend:
    image: reg.gl.swd.im/swarmica/frontend:${SW_FRONTEND_VERSION}
    depends_on:
      - django
    restart: always
    volumes:
      - ./robots.txt:/robots.txt:ro
      - swarmica_static:/admin_static:ro
      - swarmica_ugc:/attachments:ro
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.nginx.entrypoints=web-secure"
      - "traefik.http.routers.nginx.rule=Host(`${SW_HOSTNAME}`) || Host(`balancer1.swarmica.tld`) || Host(`balancer2.swarmica.tld`)"
      - "traefik.http.routers.nginx.tls.certresolver=letsencrypt"
      - "traefik.http.routers.nginx.middlewares=secure-headers,compression"
      - "traefik.http.routers.nginx.priority=10"
```

Как правило, это необходимо сделать для сервисов `frontend`, `django`, `django-websocket`, `helpcenter`.

3\. Перезагрузите сервисы:

```bash
sudo su -
cd /root/swarmica
docker compose down
docker compose up -d
```

### Настройки балансировщиков (nginx)

1\. Предварительно, установите и настройте **nginx** на каждом балансировщике

2\. Получите SSL сертификаты для доменных имен и добавьте их в конфигурацию **nginx**

3\. В директиве `server` сайта (виртуального хоста), который отвечает за обслуживание доменного имени балансировщика, замените секцию, отвечающую за `location /,` так, чтобы получилась такая конфигурация:

```txt
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        listen 443 ssl;
        server_name balancer1.swarmica.tld;

        ssl_certificate /etc/nginx/ssl/balancer1.swarmica.tld.crt;
        ssl_certificate_key /etc/nginx/ssl/balancer1.swarmica.tld.key;

        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;

        root /var/www/html;

        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                proxy_pass              https://my.swarmica.tld;
                proxy_set_header        Host    $host;
                proxy_set_header        X-Forwarded-For $remote_addr;
                add_header              X-Upstream      $upstream_addr;
        }
}
```

4\. Перезагрузите **nginx**&#x20;

```bash
invoke-rc.d nginx restart
```

5\. Если необходимо использование различных брендов, то в балансировщики можно добавить указание бренда через заголовок:

```
proxy_set_header     X-Swarmica-Brand: UID
```