Разделение портов¶
Разделение портов — настройка nginx так, чтобы веб-интерфейс администратора и трафик клиентов RuDesktop обслуживались на разных TCP-портах. Это позволяет, например, оставить административный веб только во внутренней сети, а клиентский endpoint открыть наружу
Для разделения портов, используемых для подключения клиентов и веб-интерфейса, необходимо:
Создать копию основного конфига
nginxпод отдельный server-блок для клиентов:cp /etc/nginx/sites-available/rudesktop /etc/nginx/sites-available/rudesktop-clientОтредактировать скопированный файл по пути
/etc/nginx/sites-available/rudesktop-clientВажно
В файле меняем только то, что описано ниже. Остальные
location-блоки (в частности,/v1/— WebSocket кrelay/rz,/static/,/download/,/root.pem,/favicon.ico),include rudesktop_params;и SSL-параметры — оставляем как есть: они нужны на клиентском порту для работы клиентов и проксирования встроенных эндпоинтовУдалить из копии первый
server { listen 80; … }блок (с редиректомreturn 301 https://$host$request_uri;):Этот блок уже обслуживается основным vhost-ом
/etc/nginx/sites-enabled/rudesktopдля того жеserver_name. Если оставить его в копии — при перезагрузке nginx выдаст предупреждениеconflicting server name … on 0.0.0.0:80, ignored, и второй блок будет молча проигнорированНайти блок
server {со строкойlisten 443 ssl;и заменить значение443на удобный вам порт (этот порт будет использоваться для подключения клиентов RuDesktop к серверу):server { server_name 192.168.10.10; listen 8443 ssl;
Найти блок
location / {и заменить на следующее:location /api/ { add_header 'Cache-Control' 'no-cache'; include proxy_params; proxy_pass http://unix:/run/rudesktop-web.sock; }
Добавить новый блок
location /media/ {после блокаlocation /api/ {location /media/ { add_header 'Cache-Control' 'no-cache'; include proxy_params; proxy_pass http://unix:/run/rudesktop-web.sock; }
Добавить новый блок
location /portal/ {после блокаlocation /media/ {location /portal/ { return 301 https://$host:[АДМИН_ПОРТ]$request_uri; }
Важно
Вместо
[АДМИН_ПОРТ]подставьте порт из/etc/nginx/sites-enabled/rudesktop(строкаlisten) — это порт админского веб-интерфейса. Если он не менялся, используйте443
Активировать конфиг:
ln -s /etc/nginx/sites-available/rudesktop-client /etc/nginx/sites-enabled/rudesktop-clientПроверить корректность конфигурации nginx:
nginx -tПерезагрузить сервер командой:
rude restartУказать клиентский порт в настройках сервера, чтобы установочные скрипты и пакеты (
.sh,.msi,.apk) прописывали клиентам корректный порт:В административной панели откройте Настройки → Настройки мостов и задайте параметр Порт подключения клиентов равным порту из клиентского server-блока (в примере —
8443)Важно
Без этого шага установщик берёт порт из адреса, по которому открыта веб-панель (
443), и клиент подключается на443вместо клиентского порта