Инструменты пользователя

Инструменты сайта


vji:termideskclaster:start

Это старая версия документа!


РАСПРЕДЕЛЕННАЯ УСТАНОВКА TERMIDESK

Ссылка на документацию с wiki
https://wiki.astralinux.ru/termidesk-help/5.1/dokumentatsiya/termidesk-ustanovka-programmnogo-kompleksa/raspredelennaya-ustanovka-termidesk


vdi-disp1


устанавливаем утилиту lsb_release которая потребуется при добавлении репозитория

sudo apt install lsb-release -y

подключаем репозиторий, добавляем ключ и обновляем сведения о пакетах если данная операция не была выполнен ранее

echo "" | sudo tee -a /etc/apt/sources.list
echo "deb http://10.2.0.11:8080/td/5.1.0.24335/repos/astra $(lsb_release -cs) non-free" | sudo tee -a /etc/apt/sources.list
wget -O - http://10.2.0.11:8080/td/5.1.0.24335/repos/astra/GPG-KEY-PUBLIC | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/termidesk.gpg
sudo apt update 

Установить клиентскую часть postgresql Необходимо для возможности прохождения теста соединения с БД во время установки

sudo apt install postgresql-client -y

Выполняем установку

Если установка Termidesk версии 5.1 на ОС Astra Linux Special Edition версии 1.7.4 (и выше) завершается ошибкой:

/usr/sbin/apache2: error while loading shared libraries: libastraevents.so.0: cannot open shared object file: No such file or directory

То нужно обновить пакет libastraevents
https://wiki.astralinux.ru/termidesk-help/5.1/dokumentatsiya/termidesk-ustanovka-programmnogo-kompleksa/podgotovka-sredy-funktsionirovaniya-pered-ustanovkoj/podgotovka-os-astra-linux-special-edition

После этого выполнить переустановку Termidesk

sudo apt install termidesk-vdi -y

В диалоговых окнах указываем следующую информацию
Текст лицензионного соглашения - ознакамливаемся с лицензионным соглашением и жмем «Далее»
Согласие с условиями - жмем «Да»
Способ хранения паролей RabbitMQ - Конфигфайл
Защищенное подключение к СУБД - Disable (Открытый, без защиты)
Ввод данных (Адрес СУБД) - vdi-db.td.loc
Ввод данных (Порт СУБД) - 5432
Ввод данных (Имя базы данных) - termidesk
Ввод данных (Имя пользователя) - termidesk
Ввод данных (Пароль) - ksedimret
Защищенное подключение к RabbitMQ - Disable (Открытый, без защиты)
Настройка подключений к RabbitMQ - выбираем 1-й слот «Empty»
Новое подключение (Адрес сервера) - vdi-db.td.loc
Новое подключение (Порт сервера) - 5672
Новое подключение (Виртуальный хост) - termidesk
Новое подключение (Имя пользователя) - termidesk
Новое подключение (Пароль) - ksedimret
Настройка подключений к RabbitMQ - переходим к пункту «Далее» и жмем «Enter»
Роли, выполняемые этим узлом - Портал администратора, Портал пользователя

выставляем параметр AstraMode в значение off

sudo nano /etc/apache2/apache2.conf
...
# Astra security mode
#
AstraMode off
...

перезагружаем веб-сервер

sudo systemctl restart apache2

убедиться, что локальный пользователь под которым будем входить в интерфейс Termidesk, состоит в группе «astra-admin»

sudo usermod -aG astra-admin astra

копируем конфигурацию на оставшиеся узлы

второй диспетчер

sudo scp -r /etc/opt/termidesk-vdi astra@10.2.0.12:/tmp

шлюзы, если в будущем планируем добавить роли диcпетчер или менеджер

sudo scp -r /etc/opt/termidesk-vdi astra@10.2.0.13:/tmp
sudo scp -r /etc/opt/termidesk-vdi astra@10.2.0.14:/tmp

менеджеры ВРМ

sudo scp -r /etc/opt/termidesk-vdi astra@10.2.0.15:/tmp
sudo scp -r /etc/opt/termidesk-vdi astra@10.2.0.16:/tmp

vdi-disp2


устанавливаем утилиту lsb_release которая потребуется при добавлении репозитория

sudo apt install lsb-release -y

подключаем репозиторий, добавляем ключ и обновляем сведения о пакетах если данная операция не была выполнен ранее

echo "" | sudo tee -a /etc/apt/sources.list
echo "deb http://10.2.0.11:8080/td/5.1.0.24335/repos/astra $(lsb_release -cs) non-free" | sudo tee -a /etc/apt/sources.list
wget -O - http://10.2.0.11:8080/td/5.1.0.24335/repos/astra/GPG-KEY-PUBLIC | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/termidesk.gpg
sudo apt update

копируем конфигурацию переданную с первого диспетчера в папку назначения

sudo mkdir -p /etc/opt
sudo mv /tmp/termidesk-vdi /etc/opt/

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

Если установка Termidesk версии 5.1 на ОС Astra Linux Special Edition версии 1.7.4 (и выше) завершается ошибкой:

/usr/sbin/apache2: error while loading shared libraries: libastraevents.so.0: cannot open shared object file: No such file or directory

То нужно обновить пакет libastraevents
https://wiki.astralinux.ru/termidesk-help/5.1/dokumentatsiya/termidesk-ustanovka-programmnogo-kompleksa/podgotovka-sredy-funktsionirovaniya-pered-ustanovkoj/podgotovka-os-astra-linux-special-edition
После этого выполнить переустановку Termidesk

sudo apt install termidesk-vdi -y

# выставляем параметр AstraMode в значение off

sudo nano /etc/apache2/apache2.conf
...
# Astra security mode
#
AstraMode off
...

перезагружаем веб-сервер

sudo systemctl restart apache2

убедиться, что локальный пользователь под которым будем входить в интерфейс Termidesk, состоит в группе «astra-admin»

sudo usermod -aG astra-admin astra

vdi-gw1 vdi-gw2


устанавливаем утилиту lsb_release которая потребуется при добавлении репозитория

sudo apt install lsb-release -y

подключаем репозиторий, добавляем ключ и обновляем сведения о пакетах если данная операция не была выполнен ранее

echo "" | sudo tee -a /etc/apt/sources.list
echo "deb http://10.2.0.11:8080/td/5.1.0.24335/repos/astra $(lsb_release -cs) non-free" | sudo tee -a /etc/apt/sources.list
wget -O - http://10.2.0.11:8080/td/5.1.0.24335/repos/astra/GPG-KEY-PUBLIC | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/termidesk.gpg
sudo apt update

переносим конфигурацию переданную с первого диспетчера в папку назначения, если ранее её копировали с узла первого диспетчера

sudo mkdir -p /etc/opt
sudo mv /tmp/termidesk-vdi /etc/opt/

устанавливаем шлюз termidesk-gateway

sudo apt install termidesk-gateway -y

Генерация сертификатов
https://wiki.astralinux.ru/termidesk-help/5.1/dokumentatsiya/termidesk-nastrojka-programmnogo-kompleksa/nastrojki-posle-raspredelennoj-ustanovki-fermy-termidesk/nastrojka-balansirovshchika-dlya-raboty-s-samopodpisannymi-sertifikatami/sozdanie-samopodpisannogo-ssl-sertifikata

sudo openssl req -new -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/termidesk/gw.key -out /etc/termidesk/gw.crt

sudo chown termidesk-gateway:termidesk-gateway /etc/termidesk/gw.*

Настройка шлюза https://wiki.astralinux.ru/termidesk-help/5.1/dokumentatsiya/shlyuz/shlyuz-parametry-konfigurirovaniya

Делаем бекап конфигурации по-умолчанию

sudo cp /etc/termidesk/gateway.yaml /etc/termidesk/gateway.yaml.default

Смотрим значение параметра HEALTH_CHECK_ACCESS_KEY Это значение потребуется для настройки параметра mgtserver.token Если ранее было выполнено копироыание каталога с конфигурацией с первого диспетчера, то команду можно выполнить прямо на текущем узле. Иначе, команду следует выпонить на первом диспетчере или любом узле на котором есть копия каталога конфигурации с первого диспетчера.

sudo grep HEALTH_CHECK_ACCESS_KEY /etc/opt/termidesk-vdi/termidesk.conf

Открываем файл настроек шлюза на редактирование Значение токена должно совпадать со значением параметра HEALTH_CHECK_ACCESS_KEY из файла /etc/opt/termidesk-vdi/termidesk.conf

 
sudo nano /etc/termidesk/gateway.yaml

Приводим файл настроек шлюза к виду

#
# The default configuration file for Termidesk Gateway, please do not change it.
#
_val0: &sslprof0
#  key: ${sslKey}
#  cert: ${sslCert}
  key: /etc/termidesk/gw.key
  cert: /etc/termidesk/gw.crt

  ca: ${sslCa}
  passphrase: ${sslPassPhrase}
  dhparams: ${sslDhParams}
  ciphers: ${sslCiphers}

gwservers:
- listen: ${wsServerIP:0.0.0.0}:${wsServerPort:5099}
  websocket:
    pingtimeout: ${wsIdleTimeout:30}
  checktoken:
#    url: ${urlCheckToken:https://127.0.0.1/api/wsproxy/v1/verify}
    url: https://vdi-lb.td.loc/api/wsproxy/v5.1/verify
  tcp_downstream:
    reconnect: ${gwTCPReconnect:0}

# wss server
- listen: 0.0.0.0:5199
  ssl: *sslprof0
  websocket:
    pingtimeout: 30
  checktoken:
    url: https://vdi-lb.td.loc/api/wsproxy/v5.1/verify
  tcp_downstream:
    reconnect: 0

mgtserver:
#  listen: ${mgtServerIP:127.0.0.1}:${mgtServerPort:8102}
  listen: ${mgtServerIP:0.0.0.0}:${mgtServerPort:8102}
  path: ${healthCheckURL:/api/health}
#  token: ${healthCheckAccessKey}
  token: HEALTH_CHECK_ACCESS_KEY
  ssl: *sslprof0
  metrics:
    path: ${metricsCheckURL:/api/health/metrics}
    token: ${metricsAccessKey}


rabbitmq:
#  url: ${coordinatorUrl}
#  user: ${coordinatorUser}
#  pass: ${coordinatorPass}
  url: "amqp://vdi-db.td.loc:5672/termidesk"
  user: termidesk
  pass: ksedimret
  timeout: ${coordinatorTimeout}
  refreshtime: ${coordinatorRefreshTime:60}
  single: ${coordinatorSingle:true}
  exchange: ${coordinatorExchange}
  routingkey: ${coordinatorRoutingKey}

loglevel:
  info: ${logInfo:true}
  debug: ${logDebug:false}

Выполняем перезапуск сервиса

sudo systemctl restart termidesk-gateway

Проверяем, что при перезагрузке не было ошибок

sudo journalctl -u termidesk-gateway -n 100 --no-pager

Проверяем, что шлюз слушает на всех нужных портах

sudo netstat -tupln

vdi-tsk1


Способ 1

# устанавливаем утилиту lsb_release # которая потребуется при добавлении репозитория sudo apt install lsb-release -y

# подключаем репозиторий, добавляем ключ и обновляем сведения о пакетах # если данная операция не была выполнен ранее echo «» | sudo tee -a /etc/apt/sources.list echo «deb http://10.2.0.11:8080/td/5.1.0.24335/repos/astra $(lsb_release -cs) non-free» | sudo tee -a /etc/apt/sources.list wget -O - http://10.2.0.11:8080/td/5.1.0.24335/repos/astra/GPG-KEY-PUBLIC | sudo gpg –dearmour -o /etc/apt/trusted.gpg.d/termidesk.gpg sudo apt update

# копируем конфигурацию переданную с первого диспетчера в папку назначения sudo mkdir -p /etc/opt sudo mv /tmp/termidesk-vdi /etc/opt/

# меняем роль узла в файле конфигурации sudo nano /etc/opt/termidesk-vdi/termidesk.conf «comment … NODE_ROLES=«TASKMAN,CELERYMAN» … comment

# Выполняем установку # В ходе установки никаких диалоговых окон отобразиться не должно, будет использована та конфигурация, которая скопирована с первого диспетчера. # Единственное отличие в параметре NODE_ROLES, который мы вручную изменили.

# Если установка Termidesk версии 5.1 на ОС Astra Linux Special Edition версии 1.7.4 (и выше) завершается ошибкой: # … # /usr/sbin/apache2: error while loading shared libraries: libastraevents.so.0: cannot open shared object file: No such file or directory # … # То нужно обновить пакет libastraevents # https://wiki.astralinux.ru/termidesk-help/5.1/dokumentatsiya/termidesk-ustanovka-programmnogo-kompleksa/podgotovka-sredy-funktsionirovaniya-pered-ustanovkoj/podgotovka-os-astra-linux-special-edition # После этого выполнить переустановку Termidesk

sudo apt install termidesk-vdi -y

# После установки нужно остановить и исключить службу termidesk-taskman из автоматического запуска # Исключение службы из автоматического запуска необходимо, поскольку управление ее состоянием производится скриптами режима высокой доступности sudo systemctl disable termidesk-taskman –now

##############

### vdi-tsk2 ### ### Способ 2 ###

# устанавливаем утилиту lsb_release # которая потребуется при добавлении репозитория sudo apt install lsb-release -y

# подключаем репозиторий, добавляем ключ и обновляем сведения о пакетах # если данная операция не была выполнен ранее echo «» | sudo tee -a /etc/apt/sources.list echo «deb http://10.2.0.11:8080/td/5.1.0.24335/repos/astra $(lsb_release -cs) non-free» | sudo tee -a /etc/apt/sources.list wget -O - http://10.2.0.11:8080/td/5.1.0.24335/repos/astra/GPG-KEY-PUBLIC | sudo gpg –dearmour -o /etc/apt/trusted.gpg.d/termidesk.gpg sudo apt update

# копируем конфигурацию переданную с первого диспетчера в папку назначения sudo mkdir -p /etc/opt sudo mv /tmp/termidesk-vdi /etc/opt/

# Выполняем установку # В ходе установки никаких диалоговых окон отобразиться не должно, будет использована та конфигурация, которая скопирована с первого диспетчера.

# Если установка Termidesk версии 5.1 на ОС Astra Linux Special Edition версии 1.7.4 (и выше) завершается ошибкой: # … # /usr/sbin/apache2: error while loading shared libraries: libastraevents.so.0: cannot open shared object file: No such file or directory # … # То нужно обновить пакет libastraevents # https://wiki.astralinux.ru/termidesk-help/5.1/dokumentatsiya/termidesk-ustanovka-programmnogo-kompleksa/podgotovka-sredy-funktsionirovaniya-pered-ustanovkoj/podgotovka-os-astra-linux-special-edition # После этого выполнить переустановку Termidesk

sudo apt install termidesk-vdi -y

# Пользуемся утилитой termidesk-configure # Получаем текущие роли sudo /opt/termidesk/sbin/termidesk-config get NODE_ROLES

# Устанавливаем новые роли sudo /opt/termidesk/sbin/termidesk-config set NODE_ROLES TASKMAN,CELERYMAN

# Применяем новую конфигурацию sudo /opt/termidesk/sbin/termidesk-config setup sudo /opt/termidesk/sbin/termidesk-config daemons_restart

# После установки нужно остановить и исключить службу termidesk-taskman из автоматического запуска # Исключение службы из автоматического запуска необходимо, поскольку управление ее состоянием производится скриптами режима высокой доступности sudo systemctl disable termidesk-taskman –now

###############

### vdi-tsk1 ###

# Ссылка на документацию в wiki # https://wiki.astralinux.ru/termidesk-help/5.1/dokumentatsiya/termidesk-nastrojka-programmnogo-kompleksa/nastrojki-posle-raspredelennoj-ustanovki-fermy-termidesk/nastrojka-menedyoera-rabochego-mesta-v-reyoime-vysokoj-dostupnosti

# Запускаем службу, не добавляя ее в раздел автоматической загрузки # (необязательный шаг) # sudo systemctl start termidesk-taskman

# Устанавливаем пакеты программ для организации высокой доступности sudo apt install keepalived ipset -y

# Создаем файл настроек keepalived.conf sudo nano /etc/keepalived/keepalived.conf «comment global_defs {

router_id taskman
script_user root
enable_script_security

}

vrrp_script check_httpd {

script "/usr/bin/pgrep apache"
interval 1
timeout 3
rise 1
fall 2
init_fail

}

vrrp_instance termidesk-taskman {

notify /etc/keepalived/notify.sh
state MASTER
interface eth0
virtual_router_id 20
priority 128
preempt_delay 5
advert_int 1
unicast_src_ip 10.2.0.15
authentication {
  auth_type PASS
  auth_pass ksedimret
}
virtual_ipaddress {
  10.2.0.20/24 dev eth0 label eth0:20
}
track_script {
  check_httpd
}

}

comment

# Создаем файл настроек notify.sh sudo nano /etc/keepalived/notify.sh «comment #!/bin/sh -e SELF_BIN=$(realpath ${0}) SELF_DIR=$(dirname ${SELF_BIN}) TYPE=${1} NAME=${2} STATE=${3} PRIORITY=${4} TASKMAN_SYSTEMCTL_NAME=«termidesk-taskman» TASKMAN_SYSTEMCTL_DESCRIPTION=«Termidesk-VDI Taskman daemon» TASKMAN_SYSTEMCTL_PIDFILE=«/run/termidesk-taskman/pid»

msg2log () {

logger -i "Termidesk: ${1}"

}

taskman_stop () {

msg2log "Stopping ${TASKMAN_SYSTEMCTL_NAME} service"
systemctl is-active -q ${TASKMAN_SYSTEMCTL_NAME} && systemctl stop -q ${TASKMAN_SYSTEMCTL_NAME}

}

taskman_start () {

msg2log "Starting ${TASKMAN_SYSTEMCTL_NAME} service"
systemctl is-active -q ${TASKMAN_SYSTEMCTL_NAME} || systemctl start -q ${TASKMAN_SYSTEMCTL_NAME}

} # VRRP event type: INSTANCE, name: lsb_40, state: BACKUP, priority: 64 msg2log «VRRP event type: ${TYPE}, name: ${NAME}, state: ${STATE}, priority: ${PRIORITY}» case ${STATE} in

BACKUP)
  [ "${NAME}" = "${TASKMAN_SYSTEMCTL_NAME}" ] && taskman_stop
;;
FAULT)
  [ "${NAME}" = "${TASKMAN_SYSTEMCTL_NAME}" ] && taskman_stop
;;
MASTER)
  [ "${NAME}" = "${TASKMAN_SYSTEMCTL_NAME}" ] && taskman_start
;;
*)
  msg2log "Error: unknown state ${STATE}"
  exit 1
;;

esac exit 0

comment

# Необходимо сделать файл notify.sh исполняемым sudo chmod +x /etc/keepalived/notify.sh

# Затем нужно добавить в автоматическую загрузку и запустить сервис keeaplived sudo systemctl enable keepalived –now

# Проверяем состояние сервиса sudo systemctl status keepalived # Также можно воспользоваться командой # sudo journalctl -u keepalived -n 100 –no-pager

############

### vdi-tsk2 ###

# Ссылка на документацию в wiki # https://wiki.astralinux.ru/termidesk-help/5.1/dokumentatsiya/termidesk-nastrojka-programmnogo-kompleksa/nastrojki-posle-raspredelennoj-ustanovki-fermy-termidesk/nastrojka-menedyoera-rabochego-mesta-v-reyoime-vysokoj-dostupnosti

# Устанавливаем пакеты программ для организации высокой доступности sudo apt install keepalived ipset -y

# Создаем файл настроек keepalived.conf sudo nano /etc/keepalived/keepalived.conf «comment global_defs {

router_id taskman
script_user root
enable_script_security

}

vrrp_script check_httpd {

script "/usr/bin/pgrep apache"
interval 1
timeout 3
rise 1
fall 2
init_fail

}

vrrp_instance termidesk-taskman {

notify /etc/keepalived/notify.sh
state BACKUP
interface eth0
virtual_router_id 20
priority 128
preempt_delay 5
advert_int 1
unicast_src_ip 10.2.0.16
authentication {
  auth_type PASS
  auth_pass ksedimret
}
virtual_ipaddress {
  10.2.0.20/24 dev eth0 label eth0:20
}
track_script {
  check_httpd
}

}

comment

# Создаем файл настроек notify.sh sudo nano /etc/keepalived/notify.sh «comment #!/bin/sh -e SELF_BIN=$(realpath ${0}) SELF_DIR=$(dirname ${SELF_BIN}) TYPE=${1} NAME=${2} STATE=${3} PRIORITY=${4} TASKMAN_SYSTEMCTL_NAME=«termidesk-taskman» TASKMAN_SYSTEMCTL_DESCRIPTION=«Termidesk-VDI Taskman daemon» TASKMAN_SYSTEMCTL_PIDFILE=«/run/termidesk-taskman/pid»

msg2log () {

logger -i "Termidesk: ${1}"

}

taskman_stop () {

msg2log "Stopping ${TASKMAN_SYSTEMCTL_NAME} service"
systemctl is-active -q ${TASKMAN_SYSTEMCTL_NAME} && systemctl stop -q ${TASKMAN_SYSTEMCTL_NAME}

}

taskman_start () {

msg2log "Starting ${TASKMAN_SYSTEMCTL_NAME} service"
systemctl is-active -q ${TASKMAN_SYSTEMCTL_NAME} || systemctl start -q ${TASKMAN_SYSTEMCTL_NAME}

} # VRRP event type: INSTANCE, name: lsb_40, state: BACKUP, priority: 64 msg2log «VRRP event type: ${TYPE}, name: ${NAME}, state: ${STATE}, priority: ${PRIORITY}» case ${STATE} in

BACKUP)
  [ "${NAME}" = "${TASKMAN_SYSTEMCTL_NAME}" ] && taskman_stop
;;
FAULT)
  [ "${NAME}" = "${TASKMAN_SYSTEMCTL_NAME}" ] && taskman_stop
;;
MASTER)
  [ "${NAME}" = "${TASKMAN_SYSTEMCTL_NAME}" ] && taskman_start
;;
*)
  msg2log "Error: unknown state ${STATE}"
  exit 1
;;

esac exit 0

comment

# Необходимо сделать файл notify.sh исполняемым sudo chmod +x /etc/keepalived/notify.sh

# Затем нужно добавить в автоматическую загрузку и запустить сервис keeaplived sudo systemctl enable keepalived –now

# Проверяем состояние сервиса sudo systemctl status keepalived # Также можно воспользоваться командой # sudo journalctl -u keepalived -n 100 –no-pager

##############

### vdi-lb ###

# Ссылка на документацию в wiki # https://wiki.astralinux.ru/termidesk-help/5.1/dokumentatsiya/termidesk-nastrojka-programmnogo-kompleksa/nastrojki-posle-raspredelennoj-ustanovki-fermy-termidesk/nastrojka-balansirovshchika-dlya-raboty-s-samopodpisannymi-sertifikatami

# Устанавливаем Nginx, если ранее он не был установлен на хосте. sudo apt install nginx -y

# Создаем самоподписанный сертификат # https://wiki.astralinux.ru/termidesk-help/5.1/dokumentatsiya/termidesk-nastrojka-programmnogo-kompleksa/nastrojki-posle-raspredelennoj-ustanovki-fermy-termidesk/nastrojka-balansirovshchika-dlya-raboty-s-samopodpisannymi-sertifikatami/sozdanie-samopodpisannogo-ssl-sertifikata # После исполнения команды надо последовательно ввести ряд параметров, запросы на которые отобразятся в командной строке # Наиболее важным параметром является Common Name (необходимо ввести FQDN-имя балансировщика). Как правило, в эту строку вносят доменное имя, с которым нужно связать сервер. В случае если доменного имени нет, нужно внести в эту строку IP-адрес сервера sudo openssl req -new -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt

# Необходимо последовательно ввести ряд параметров, запросы на которые отобразятся в командной строке: # # Country Name (2 letter code) [AU]; # State or Province Name (full name) [Some-State]; # Locality Name (eg, city) []; # Organization Name (eg, company) [Internet Widgits Pty Ltd]; # Organizational Unit Name (eg, section) []; # Common Name (e.g. server FQDN or YOUR name) []; # Email Address []. # # Наиболее важным параметром является Common Name (необходимо ввести FQDN-имя балансировщика). # Как правило, в эту строку вносят доменное имя, с которым нужно связать сервер.

# При использовании OpenSSL необходимо также создать ключи Диффи-Хеллмана. # Ключи Диффи-Хеллмана используются для безопасного обмена криптографическими ключами по незащищенному каналу связи. # Этот метод позволяет двум сторонам согласовать общий секретный ключ, # который затем может быть использован для шифрования дальнейшего обмена данными, # не передавая сам ключ напрямую. # Процесс создания занимает около 15 минут. sudo openssl dhparam -out /etc/nginx/dhparam.pem 4096

# Выполняем настройки Nginx для поддержки SSL # создаем и заполняем необходимые сниппеты # https://wiki.astralinux.ru/termidesk-help/5.1/dokumentatsiya/termidesk-nastrojka-programmnogo-kompleksa/nastrojki-posle-raspredelennoj-ustanovki-fermy-termidesk/nastrojka-balansirovshchika-dlya-raboty-s-samopodpisannymi-sertifikatami/nastrojka-nginx-dlya-podderyoki-ssl sudo nano /etc/nginx/snippets/self-signed.conf «comment ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;

comment

sudo nano /etc/nginx/snippets/ssl-params.conf «comment ssl_protocols TLSv1.3; ssl_prefer_server_ciphers on; ssl_dhparam /etc/nginx/dhparam.pem; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384; ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0 ssl_session_timeout 10m; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; # Requires nginx >= 1.5.9 ssl_stapling on; # Requires nginx >= 1.3.7 ssl_stapling_verify on; # Requires nginx ⇒ 1.3.7 resolver 77.88.8.8 77.88.8.1 valid=300s; resolver_timeout 5s; # Disable strict transport security for now. You can uncomment the following # line if you understand the implications. # add_header Strict-Transport-Security «max-age=63072000; includeSubDomains; preload»; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection «1; mode=block»;

comment

# Создаем нужную конфигурацию для веб-сервера # https://wiki.astralinux.ru/termidesk-help/5.1/dokumentatsiya/termidesk-nastrojka-programmnogo-kompleksa/nastrojki-posle-raspredelennoj-ustanovki-fermy-termidesk/nastrojka-balansirovshchika-dlya-raboty-s-samopodpisannymi-sertifikatami/konfigurirovanie-veb-servera sudo nano /etc/nginx/sites-available/termidesk-lb.conf «comment upstream daas-upstream-ws {

least_conn;
# PROXY TERMIDESK
server 10.2.0.13:5099;
server 10.2.0.14:5099;

}

upstream daas-upstream-nodes {

least_conn;
# DISPATCHER TERMIDESK
server 10.2.0.11:443;
server 10.2.0.12:443;

}

server {

listen 0.0.0.0:80;
listen 0.0.0.0:443 ssl;
include snippets/self-signed.conf;
include snippets/ssl-params.conf;
location /websockify {
  # limit_req zone=fast nodelay;
  proxy_http_version 1.1;
  proxy_pass http://daas-upstream-ws/;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  # Connection timeout
  proxy_connect_timeout 1000;
  proxy_send_timeout 1000;
  proxy_read_timeout 1000;
  send_timeout 1000;
  # Disable cache
  proxy_buffering off;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
  proxy_pass https://daas-upstream-nodes/;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-Proto $scheme;
}

}

comment

# Если необходимо добавить конфигурацию апстримов, работающих по WSS, # То следует добавить блок самого апстрима. # А также конфигурацию проксирования на этот апстрим. «comment upstream daas-upstream-wss {

least_conn;
# PROXY TERMIDESK
server 10.2.0.13:5199;
server 10.2.0.14:5199;

} … server { …

location /wss {
  # limit_req zone=fast nodelay;
  proxy_http_version 1.1;
  proxy_pass https://daas-upstream-wss/;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  # Connection timeout
  proxy_connect_timeout 1000;
  proxy_send_timeout 1000;
  proxy_read_timeout 1000;
  send_timeout 1000;
  # Disable cache
  proxy_buffering off;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
}

… }

comment

# Активируем конфигурацию sudo ln -s /etc/nginx/sites-available/termidesk-lb.conf /etc/nginx/sites-enabled/ # Удаляем конфигурацию по-умолчанию sudo rm /etc/nginx/sites-enabled/default # Проверяем корректность настроек sudo nginx -t # Поскольку сертификат является самоподписанным, SSL stapling не будет использоваться. # Сервер nginx выдаст предупреждение, отключит stapling для данного сертификата и продолжит работу. # Если других предупреждений нет, то выполняем перезапуск сервиса sudo nginx -s reload

vji/termideskclaster/start.1756877770.txt.gz · Последнее изменение: 2025/09/03 05:36 — vji

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki