1. Установка Postgresql инсталлятором





На следующем шаге нужно указать путь к директории на разделе, выделенном для БД. Иначе файлы баз данных будут храниться на системном разделе. Для переноса уже существующего хранилища на другой раздел следуйте инструкции. |





2. Проверить конфигурационный файл C:\Program Files\PostgreSQL\XX\data\pg_hba.conf, где XX - версия PostgreSQL:

Раздел "#IPv4 local connections" должен содержать запись:
host all all 127.0.0.1/32 scram-sha-256 |
При разнесенной (выделенный сервер SQL) установке, или необходимости обеспечить внешний доступ к БД, следует добавить раздел "IPv4 network connections":

и строку:
# IPv4 local connections: host all all 0.0.0.0/0 scram-sha-256 |
3. Перезапустить службу:

4. Проверить выполняется ли прослушивание на порту 5432 для всех активных адресов:
C:\>netstat -a | findstr 5432 Активные подключения Имя Локальный адрес Внешний адрес Состояние ... TCP 0.0.0.0:5432 Vitrow2k16:0 LISTENING |
5. Войти в cli postgresql от имени пользователя postgres:
c:\>cd "C:\Program Files\PostgreSQL\XX\bin" C:\Program Files\PostgreSQL\XX\bin>psql -U postgres -h 127.0.0.1 Пароль пользователя postgres: <ввести пароль пользователя "postgres", заданный при инсталляции Postgresql> |
6. Создать пользователя с ролью суперпользователя:
postgres-#CREATE USER vitrodbuser WITH PASSWORD '@pwd4vitro!' SUPERUSER; |
7. Создать новую базу данных с именем vitrodb:
postgres-#CREATE DATABASE vitrodb with owner = vitrodbuser encoding = 'UTF8' connection limit = -1; |
8. Создать новую базу данных с именем workflow:
postgres-#CREATE DATABASE workflow with owner = vitrodbuser encoding = 'UTF8' connection limit = -1; |
9. Отключиться от cli postgresql:
postgres-# \q |
10. Скачать и распаковать дистрибутив:



Инициализация базы данных
Версия дистрибутива 24.1.38 или выше:
11. Файлы инициализации базы данных лежат в папке DB\Install (внутри распакованного дистрибутива):
C:\distr\Vitro.Server.MultiPlatform.Windows-<версия дистрибутива>\DB\Install\db_func_create.sql C:\distr\Vitro.Server.MultiPlatform.Windows-<версия дистрибутива>\DB\Install\db_table_create.sql C:\distr\Vitro.Server.MultiPlatform.Windows-<версия дистрибутива>\DB\Install\db_data_init.sql |
12. Запустить инициализацию базы из скриптов:
C:\Program Files\PostgreSQL\ХХ\bin>psql -U vitrodbuser -h 127.0.0.1 -d vitrodb -f "C:\distr\Vitro.Server.MultiPlatform.Windows-<версия дистрибутива>\DB\Install\db_func_create.sql" -f "C:\distr\Vitro.Server.MultiPlatform.Windows-<версия дистрибутива>\DB\Install\db_table_create.sql" -f "C:\distr\Vitro.Server.MultiPlatform.Windows-<версия дистрибутива>\DB\Install\db_data_init.sql" |
Версия дистрибутива ниже 24.1.38:
11.1 Скопировать путь к файлу резервной копии базы данных (внутри распакованного дистрибутива):
C:\distr\Vitro.Server.MultiPlatform.Windows-<версия дистрибутива>\DB\vitrodb.bak |
12.1 Запустить восстановление БД из бэкапа:
C:\Program Files\PostgreSQL\ХХ\bin>psql -U vitrodbuser -h 127.0.0.1 vitrodb < "C:\distr\Vitro.Server.MultiPlatform.Windows-<версия дистрибутива>\DB\vitrodb.bak" |
Файлы конфигурации
13. Скопировать следующие папки из дистрибутива в расположение установки в "C:\Program Files\Vitro" :
C:\Windows\system32>xcopy C:\distr\Vitro.Server.MultiPlatform.Windows-<версия дистрибутива>\Vitro "C:\Program Files\Vitro Software\Vitro\" /e C:\Windows\system32>xcopy C:\distr\Vitro.Server.MultiPlatform.Windows-<версия дистрибутива>\Vitro.Server.Core.Web "C:\Program Files\Vitro Software\Vitro\Server\Vitro.Server.Core.Web\" /e C:\Windows\system32>xcopy C:\distr\Vitro.Server.MultiPlatform.Windows-<версия дистрибутива>\Vitro.Server.Workflow.Manager.Web "C:\Program Files\Vitro Software\Vitro\Server\Vitro.Server.Workflow.Manager.Web\" /e |
14. Скопировать папку файлового хранилища в расположение, в которое смонтирован раздел для хранения:
C:\Windows\system32>xcopy C:\distr\Vitro.Server.MultiPlatform.Windows-<версия дистрибутива>\DB\VitroFileStorage "D:\Data\VitroFileStorage\" /e |
15. Внести изменения в конфигурационный файл db.json:
C:\Program Files\Vitro Software\Vitro\Server\Conf\db.json |
"ConnectionString": "server=localhost;database=vitrodb;user id=vitrodbuser;password=@pwd4vitro!;Include Error Detail=true", |
"FileStoragePath": "D:\\Data\\VitroFileStorage", |
"TempPath": "C:\\Temp", |
16. Внести изменения в конфигурационный файл workflow.json:
C:\Program Files\Vitro Software\Vitro\Server\Conf\workflow.json |
"ConnectionString": "server=localhost;database=workflow;user id=vitrodbuser;password=@pwd4vitro!;Include Error Detail=true", |
17. Внести изменения в конфигурационный файл mail.json:
Указать адрес и порт SMTP сервера:
"Host": "smtp.example.ru", "Port": 587, |
Указать данные УЗ для подключения к SMTP серверу:
"Login": "mail@example.ru", "Password": "123456", |
Указать адрес отправителя:
"FromAddress": "mail@example.ru", "FromName": "mail@example.ru", |
Указать используется ли SSL для подключения к SMTP серверу:
"EnableSsl": true, |
Убедиться, что есть параметр SecureSocketOptions:
"SecureSocketOptions": "StartTls" |
Остальные параметры оставить по умолчанию.
Для автоматического запуска Веб-приложений создать и настроить задания для планировщика Windows:
18. Нажать Win+s и в строке поиска ввести "планировщик заданий". Запустить найденное приложение.

19. В открывшемся окне планировщика на левой панели открыть библиотеку планировщика заданий. На панели "Действия" вызвать функцию "Создать простую задачу". В открывшемся окне ввести "Имя" задачи "Vitro Server .Net Web Application".
Нажать "Далее".

20. На шаге "Триггер" мастера создания выбрать пункт "При запуске компьютера". Нажать "Далее".

21. На шаге "Действие" выбрать пункт "Запустить программу". Нажать "Далее".

22. На шаге "Запуск программы" :

в строке "Программа или сценарий" указать полный путь к исполняемому файлу приложения:
"C:\Program Files\Vitro Software\Vitro\Server\Vitro.Server.Core.Web\Vitro.Server.Core.Web.exe" |
в строке аргументов указать:
/urls http://localhost:4615 |
в строке "рабочая папка" указать (без кавычек) путь к папке приложения:
C:\Program Files\Vitro Software\Vitro\Server\Vitro.Server.Core.Web |
23. На шаге "Завершение" отметить флаг "Открыть окно "Свойства"для..." и нажать "Готово" :

24. в открывшемся окне свойств установить переключатель в положение "Выполнять для всех пользователей", и отметить флаг "Выполнить с наивысшими правами". Также можно сменить пользователя, от которого будет выполняться задание. После подтверждения ввести пароль пользователя.

25. Повторить шаги 18 - 23 для приложения Workflow Manager задав следующие параметры:
"Имя" задачи: "Vitro Workflow Manager .Net Web Application" "Программа или сценарий": "C:\Program Files\Vitro Software\Vitro\Server\Vitro.Server.Workflow.Manager.Web\Vitro.Server.Workflow.Manager.Web.exe" аргументы команды: /urls http://localhost:4616 "рабочая папка" C:\Program Files\Vitro Software\Vitro\Server\Vitro.Server.Workflow.Manager.Web |
26. запустить задания вручную и проверить выполняется ли прослушивание на портах, заданных в аргументах команд (здесь 4615 и 4616) для адреса Lo интерфейса:
netstat -a | findstr 4615 netstat -a | findstr 4616 Имя Локальный адрес Внешний адрес Состояние ... TCP 127.0.0.1:4615 Vitrow2k16:0 LISTENING ... TCP 127.0.0.1:4616 Vitrow2k16:0 LISTENING ... |
27. Настроить обратное проксирование.
Обратное проксирование можно настроить с помощью различных программных средств, с учетом предпочтений заказчика. В отдельной статье рассмотрим настройку обратного проксирования через IIS.
В рамках данной статьи рассматривается наиболее предпочтительный вариант с использованьем NGINX в качестве обратного прокси.
Пример конфигурационных файлов для настройки обратного проксирования в NGINX (for Windows):
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80 default_server;
server_name vitro.example.ru;
client_max_body_size 100000M;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_pass_request_body on;
proxy_buffer_size 1M;
proxy_buffers 4 1M;
proxy_read_timeout 1h;
proxy_send_timeout 1h;
location / {
#proxying traffic to upstream application (Vitro.Server.Core.Web)
proxy_pass http://127.0.0.1:4615;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
}
location /workflow/manager {
proxy_pass http://localhost:4616/workflow/manager;
}
}
} |