|
<< Показать Оглавление >> Настройка при работе с одним сервером |
![]()
|
Приведённые настройки подразумевают, что nginx находится на одном хосте c Dictation Server. Если они находятся на разных хостах, то: •в настройках nginx порты Listen должны совпадать с backend_ws, backend_rest, то есть с портами 34000 и 39255, соответственно; •в настройках Dictation Server порты менять не нужно. |
Настройка nginx
Для настройки шифрования требуется установить nginx между клиентским и серверным приложениями Voice2Med.

Схема работы с шифрованием
Так как hop-by-hop заголовки (в том числе Upgrade и Connection) не передаются от клиента к проксируемому серверу, то проксируемый сервер не узнает о намерении клиента сменить протокол с REST на WebSocket. Все заголовки следует передать явно.
Значение параметра $connection_upgrade определяется в map-е.
В примере конфигурационного файла nginx замените
•dct-srv.local на доменное имя или IP-адрес сервера Dictation Server,
•[Certs] на сертификат в формате .crt,
•[Key] на ключ в формате .key.
#user nobody;
worker_processes auto;
#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;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
sendfile on;
keepalive_timeout 65;
upstream backend_ws {
least_conn;
server 127.0.0.1:34001;
}
upstream backend_rest {
least_conn;
server 127.0.0.1:39257;
}
server {
listen 34000 ssl;
server_name dct-srv.local;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate [Certs];
ssl_certificate_key [Key];
location / {
proxy_pass http://backend_ws;
proxy_http_version 1.1;
proxy_buffering off;
proxy_read_timeout 7d;
proxy_send_timeout 7d;
tcp_nodelay on;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 39255 ssl;
server_name dct-srv.local;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate [Certs];
ssl_certificate_key [Key];
location / {
proxy_pass http://backend_rest;
auth_basic off;
allow all;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
Настройка Dictation Server
Перейдите в папку
%Programdata%\Speech Technology Center\DictationApp.Server\Settings
В файле Dictation.Asr.Server.Properties.Settings.config укажите значение настройки Port:
<Dictation.Asr.Server.Properties.Settings>
...
<setting name="Port" serializeAs="String">
<value>34001</value>
</setting>
...
</Dictation.Asr.Server.Properties.Settings>
В файле Dictation.Common.Properties.Settings.config укажите значение настройки BalancerPort:
<Dictation.Common.Properties.Settings>
...
<setting name="BalancerPort" serializeAs="String">
<value>39257</value>
</setting>
</Dictation.Common.Properties.Settings>
В файле Dictation.Rest.Server.Properties.Settings.config укажите значение настройки Port:
<Dictation.Rest.Server.Properties.Settings>
<setting name="Port" serializeAs="String">
<value>39257</value>
</setting>
</Dictation.Rest.Server.Properties.Settings>
Если какого-то из файлов конфигурации в папке нет, создайте его и скопируйте в него настройки из примера. |
Настройка Voice2Med Client
Для каждого клиентского приложения внесите изменения в файл конфигурации.
Откройте файл:
%Programfiles(x86)%\Speech Technology Center\Voice2Med Client\DictationApp.Client.dll.config
В секции Dictation.Common.Properties.CommonSettings укажите способ проверки сертификата безопасности в параметре SslCertificateVerification. Допустимые значения:
•Strict
SSL-сертификат должен быть подписан доверенным корневым сертификатом и имя сервера должно совпадать с именем, указанным в сертификате (допустимо указывать IP-адрес вместо имени сервера);
•IgnoreName
SSL-сертификат должен быть подписан доверенным корневым сертификатом, но имя сервера не обязано совпадать с именем, указанным в сертификате;
•Insecure
SSL-сертификат может быть подписан недоверенным сертификатом.
<applicationSettings>
...
<Dictation.Common.Properties.CommonSettings>
...
<setting name="SslCertificateVerification" serializeAs="String">
<value>Strict</value>
</setting>
...
</Dictation.Common.Properties.CommonSettings>
...
</applicationSettings>
[SSL]
SslCertificateVerification=Strict
Если эта секция отсутствует, допишите ее в файл. |