# Многосерверная конфигурация

**Настройка многосерверной конфигурации PassOffice**

**1. Базовая конфигурация PostgreSQL**

Отредактируйте `application.properties`:

```
passoffice.db.driver=org.postgresql.Driver
passoffice.db.port=5432
passoffice.db.url=jdbc:postgresql://localhost:5432/passoffice
passoffice.db.schema=passofficedb
passoffice.db.user=postgres
passoffice.db.pw=1
```

**2. Настройка Eureka Discovery Service**

```

spring.application.name=passoffice
eureka.client.enabled=passoffice.cluster.enabled
eureka.client.service-url.default-zone=http://localhost:8761/eureka
eureka.instance.preferIpAddress=true
eureka.instance.instance-id=instance.id
eureka.instance.hostname=localhost
eureka.instance.ipAddress=localhost - ip, на котором запущен сервис Discovery.

```

**3. Запуск кластера**

1. **Сервис Discovery**:

   ```
   java -jar eureka-server.jar --spring.profiles.active=discovery
   ```
2. **Ноды приложения**:
   * **Нода 1**:

     ```
     java -jar PassOfficeSrv.jar --server.port=4201 --instance.id=node1
     ```
   * **Нода 2**:

     ```
     java -jar PassOfficeSrv.jar --server.port=4202 --instance.id=node2
     ```

**4. Настройка Nginx для sticky sessions**

Для корректной работы всех возможностей PassOffice в многосерверной конфигурации, необходимо включить поддержку "липких сессий" (sticky sessions) на стороне балансировщика нагрузки.

Подробная информация по настройке Nginx в разделе «Enabling Session Persistence»: <https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/>

**5. Вход в PassOffice**

Войдите под разными операторами, все действия и изменения одного пользователя будут отображаться у другого и наоборот.
