...
1. Установка Postgresql инсталлятором
| Warning | ||
|---|---|---|
| ||
На следующем шаге нужно указать путь к директории на разделе, выделенном для БД. Иначе файлы баз данных будут храниться на системном разделе. Для переноса уже существующего хранилища на другой раздел следуйте инструкции. |
| Warning | ||
|---|---|---|
| ||
| Настройки логирования по умолчанию не являются оптимальными и могут очень быстро заполнить диск логами. Нужно выполнить настройку по инструкции. |
2. Проверить конфигурационный файл C:\Program 2. Проверить конфигурационный файл C:\Program Files\PostgreSQL\XX\data\pg_hba.conf, где XX - версия PostgreSQL:
...
| Code Block | ||
|---|---|---|
| ||
C:\>netstat -a | findstr 5432
Активные подключения
Имя Локальный адрес Внешний адрес Состояние
...
TCP 0.0.0.0:5432 Vitrow2k16:0 LISTENING
|
...
| Code Block | ||
|---|---|---|
| ||
postgres-#CREATE DATABASE vitrodb withWITH ownerOWNER = vitrodbuser encodingENCODING = 'UTF8' connection limit LOCALE_PROVIDER = 'icu' ICU_LOCALE = -1;'ru-u-kn-true' TEMPLATE = template0 CONNECTION_LIMIT = -1; |
88. Создать новую базу данных с именем workflow:
| Code Block | ||
|---|---|---|
| ||
postgres-#CREATE DATABASE workflow withWITH ownerOWNER = vitrodbuser encodingENCODING = 'UTF8' LOCALE_PROVIDER = 'icu' ICU_LOCALE = 'ru-u-kn-true' TEMPLATE = connectiontemplate0 limitCONNECTION_LIMIT = -1; |
9. Отключиться от cli postgresql:
...
| Code Block | ||||
|---|---|---|---|---|
| ||||
"FileStoragePath": "D:\\Data\\VitroFileStorage\", |
- изменить параметр "TempPath", указав корректный путь к папке временных файлов:
| Code Block | ||
|---|---|---|
| ||
"TempPath": "/tmpC:\\Temp", |
16. Внести изменения в конфигурационный файл workflow.json:
...
| Code Block | ||||
|---|---|---|---|---|
| ||||
"ConnectionString": "server=localhost;database=workflow;user id=vitrodbuser;password=@pwd4vitro!;Include Error Detail=true", |
17. Внести изменения в конфигурационный файл mail.json:
Указать адрес и порт SMTP сервера
изменить параметр "BaseUrl", указав корректный Url сайта:
Code Block language
...
bash "
...
Host": "
...
smtp.example.ru",
...
- изменить параметр
PortalUrl"
, указав корректный Url сайта:Port"
: 587, Указать данные УЗ для подключения к SMTP серверу:
Code Block language
...
bash "
...
Login": "
...
mail@example.ru",
...
"Password": "123456",Указать адрес отправителя
изменить параметр "BasePath", указав корректный корректный относительный путь для Url:
Code Block language
...
bash "
...
FromAddress": "
...
- Указать логин/пароль учетной записи администратора:
...
| language | js |
|---|---|
| title | Json |
...
mail@example.ru", "FromName": "
...
mail@example.ru",Указать используется ли SSL для подключения к SMTP серверу
17. Внести изменения в конфигурационный файл mail.json:
Указать адрес и порт SMTP сервера:
Code Block language bash "HostEnableSsl": "smtp.example.ru", "Port": 587,true,
Убедиться, что есть параметр SecureSocketOptionsУказать данные УЗ для подключения к SMTP серверу:
Code Block language bash "LoginSecureSocketOptions": "mail@example.ru", "Password": "123456",
Указать адрес отправителя:
Code Block language bash "FromAddress": "mail@example.ru", "FromName": "mail@example.ru",Указать используется ли SSL для подключения к SMTP серверу:
Code Block language bash "EnableSsl": true,Убедиться, что есть параметр SecureSocketOptions:
Code Block language bash "SecureSocketOptions": "StartTls"Остальные параметры оставить по умолчанию.
Для автоматического запуска Веб-приложений создать и настроить задания для планировщика Windows:
18. Нажать Win+s и в строке поиска ввести "планировщик заданий". Запустить найденное приложение.
19. В открывшемся окне планировщика на левой панели открыть библиотеку планировщика заданий. На панели "Действия" вызвать функцию "Создать простую задачу". В открывшемся окне ввести "Имя" задачи "Vitro Server .Net Web Application".
Нажать "Далее".
StartTls"Остальные параметры оставить по умолчанию.
Для автоматического запуска Веб-приложений создать и настроить задания для планировщика Windows:
18. Нажать Win+s и в строке поиска ввести "планировщик заданий". Запустить найденное приложение.
19. В открывшемся окне планировщика на левой панели открыть библиотеку планировщика заданий. На панели "Действия" вызвать функцию "Создать простую задачу". В открывшемся окне ввести "Имя" задачи "Vitro Server .Net Web Application".
Нажать "Далее".
20. На шаге "Триггер" мастера создания выбрать пункт "При 20. На шаге "Триггер" мастера создания выбрать пункт "При запуске компьютера". Нажать "Далее".
...
| Code Block | ||
|---|---|---|
| ||
"Имя" задачи: "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 |
...
| Code Block | ||
|---|---|---|
| ||
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. Настроить обратное проксирование.
Если планируется использование авторизации через Kerberos, то необходимо настроить обратное проксирование через IIS.
Иначе возможно использовать Обратное проксирование можно настроить с помощью различных программных средств, с учетом предпочтений заказчика. В отдельной статье рассмотрена настройка обратного проксирования через IIS.
В рамках данной статьи рассматривается наиболее предпочтительный вариант с использованьем NGINX в качестве обратного прокси.
Пример конфигов для обратного проксирования для NGINX (for WindowsПример конфигурационного файла NGINX (nginx.conf):
| Code Block | ||||
|---|---|---|---|---|
| ||||
#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; sendfile #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' on; # client_max_body_size 20G; # КРИТИЧНО: Увеличиваем буферы для тяжелых Kerberos-тикетов '$status $bodylarge_client_bytesheader_sent "$http_referer" 'buffers 4 64k; #proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size '"$http_user_agent" "$http_x_forwarded_for"'256k; # #access_logПоддержка постоянных logs/access.logсоединений с main; браузером sendfilekeepalive_timeout 300s; keepalive_requests on1000; #tcp_nopush# 1. Настройка Upstream on; #keepalive_timeout 0; keepalive_timeout 65; с Keep-Alive (обязательно для Negotiate/NTLM) upstream vitros_backend { #gzip on; server { server 127.0.0.1:4615; keepalive 64; listen 80 default_server; server_name vitro.example.ru; proxy_http_version } # Редирект с HTTP на 1.1; proxy_pass_request_headers on; proxy_pass_request_bodyHTTPS server { on; listen 80 default_server; proxy_buffer_size 1M listen [::]:80 default_server; proxyserver_buffers name dev-vs.vitro.dev; 4 1M; if ( proxy_read_timeout 1h; $host != "dev-vs.vitro.dev" ){ proxy_send_timeout 1h; location / {return 444; } return 301 https://$host$request_uri; } #proxying traffic to# upstreamОсновной application (Vitro.Server.Core.Web)SSL сервер server { listen 443 ssl proxy_pass http://127.0.0.1:4615; proxy_set_header X-Real-IP $remote_addr; proxy_set_headerdefault_server; listen X-Forwarded-For[::]:443 ssl default_server; $proxy_add_x_forwarded_for; proxy_set_headerserver_name dev-vs.vitro.dev; ssl_certificate X-Forwarded-Proto $scheme; proxy_set_header Host $host; } C:/nginx/conf/ssl/dev-vs.vitro.dev.crt; ssl_certificate_key C:/nginx/conf/ssl/dev-vs.vitro.dev.key; location /workflow/manager { ssl_protocols TLSv1.2 TLSv1.3; # Оптимизация SSL для Windows proxyssl_session_passcache httpshared://localhost:4616/workflow/managerSSL:10m; } } }ssl_session_timeout 10m; if ( $host != "dev-vs.vitro.dev" ){ return 444; } # Общие настройки проксирования для Windows Auth proxy_http_version 1.1; proxy_pass_request_headers on; proxy_pass_request_body on; proxy_read_timeout 1h; proxy_send_timeout 1h; location / { # 2. Используем upstream proxy_pass http://vitros_backend; # 3. КРИТИЧНО: Отключаем буферизацию для трансляции NTLM-рукопожатия proxy_buffering off; proxy_request_buffering off; # 4. Сбрасываем заголовок Connection для работы Keep-Alive до бэкенда proxy_set_header Connection ""; # 5. Проброс заголовков proxy_set_header Host $host; 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; # Для поддержки WebSockets proxy_set_header Upgrade $http_upgrade; # proxy_set_header Connection "upgrade"; # Раскомментируйте, если нужны только сокеты } location /workflow/manager { proxy_pass http://localhost:4616/workflow/manager; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_buffering off; proxy_set_header Host $host; } } } |
Примечание: Файлы *.crt и *.key для https протокола можно получить из pfx файла сертификата. На примере самоподписанного сертификата IIS (не рекомендуется для продукционных сред!):
- Откройте IIS Manager → выберите сервер → Server Certificates → Create Self-Signed Certificate.
- Кликните правой кнопкой на созданный сертификат → Export. Сохраните его как файл
.pfxс паролем. - С помощью утилиты openssl (она часто идет в комплекте с Git для Windows или ставится отдельно), чтобы вытащить ключ и сертификат:
Code Block title Извлечь ключ openssl pkcs12 -in dev-vs.vitro.dev.pfx -nocerts -out dev-vs.vitro.dev.key -nodesCode Block title Извлечь сертификат openssl pkcs12 -in dev-vs.vitro.dev.pfx -clcerts -nokeys -out dev-vs.vitro.dev.crt
















