Linux
沒有 SSL 終止的 Nginx 反向代理
我正在嘗試在 Windows 2k12 伺服器上設置 Microsoft 遠端桌面 Web 服務。這是功能齊全的,但是我想(需要)在它前面放置一個反向代理(Nginx)。
我只有 1 個外部 ip(固定),並且我在其後面託管多個網站,而不是所有網站都在同一個 VM 上。我設法讓 Nginx 使用虛擬主機作為 HTTP 和 HTTPS 流量的反向代理。但是,對於遠端桌面服務,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 而不終止它。在 nginx 前面使用 haproxy,它能夠做到這一點(至少 1.5 版),將 RD Web 流量代理到您的終端伺服器,並將其他一切代理到 nginx。
今天,nginx 支持 ssl pass thru: https ://serversforhackers.com/tcp-load-balancing-with-nginx-ssl-pass-thru