Я пытаюсь настроить веб-службы удаленного рабочего стола Microsoft на сервере Windows 2k12. Это полностью функционально, однако я хотел бы (нужно) поставить перед ним обратный прокси (Nginx).
У меня только 1 внешний IP-адрес (фиксированный), и я размещаю за ним несколько веб-сайтов, а не все на одной виртуальной машине. Мне удалось заставить Nginx работать как обратный прокси для HTTP и HTTPS трафика с vhosts. Однако для служб удаленного рабочего стола разгрузка SSL вызывает у меня проблемы при запуске приложения. Поэтому я хотел бы передавать трафик через сервер Nginx без разгрузки SSL, а сервер Windows выполнял все действия SSL. Кажется, что даже без ввода "ssl on;" Nginx помещает сертификат от другого виртуального хоста в раздел сервера RD Web. У меня нет чего-то вроде "дефолт"блокировать где угодно в моей конфигурации.
Вот небольшой набросок того, как выглядит установка:
-- |server 1 HTTP|
|internet user| -- |Nginx Rev Proxy listening on port 443| -- |windows server|
-- |server 2 HTTP|
Ниже приведен файл конфигурации, который у меня есть (для RD Web):
server {
listen 443;
server_name host.domain.com;
access_log /var/log/nginx/host.domain.com.access.log;
location / {
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;
proxy_pass https://172.29.0.249;
}
}
Я уже пытался заставить сервер Windows принимать простой HTTP, но это снова вызывает проблемы с приложениями удаленного рабочего стола. Я дохожу до входа в систему, и на этом все заканчивается. Я уже упоминал об этом раньше, но когда я перенаправляю порт 443 на моем брандмауэре на сервер Windows, подключения к удаленному рабочему столу работают без проблем, так что, похоже, это не проблема.
Любая помощь здесь будет принята с благодарностью. Я новичок в Nginx и его конфигурации (в прошлом всегда использовал apache).
Сегодня nginx поддерживает передачу ssl через: https://serversforhackers.com/tcp-load-balancing-with-nginx-ssl-pass-thru
Начиная с версии 1.11.5, nginx поддерживает сквозное SSL-проксирование с учетом SNI: http://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html
nginx не может пройти через SSL, не прервав его. Используйте haproxy перед nginx, который способен на это (по крайней мере, версия 1.5), чтобы проксировать веб-трафик удаленных рабочих столов на ваш терминальный сервер, а все остальное - на nginx.