我有一個透過 SSL 憑證保護的舊伺服器example.com
。我想在這台伺服器之前放置另一台伺服器以處理proxy_pass
某些(舊版)流量。新伺服器也必須公開example.com
。
如果這些位於不同的域(legacy.example.com
和example.com
)上,我就能夠proxy_pass https://legacy.example.com
。然而,舊版應用程式充斥著硬編碼的example.com
URL(而且它只有 的 SSL 憑證example.com
)。任何其他 URL(例如 IP)都將重定向到example.com
.
我想要做的是proxy_pass <legacy IP>
,設定主機頭proxy_set_header Host example.com
。但問題是,這不使用 HTTPS。
我不久前用curl做了一些事情,我能夠透過它的IP連接到伺服器,但指定用於憑證的網域。儘管沒有映射到該 IP 的A
記錄example.com
,但我還是能夠欺騙它認為它是透過該網域連接的。
curl https://example.com/path --resolve example.com:<IP>
Nginx中有類似的東西嗎?
答案1
我自己沒有使用過它,但它看起來proxy_ssl_name
可能是您正在尋找的:
例如:
proxy_set_header Host example.com;
proxy_ssl_name example.com;
proxy_pass https://1.2.3.4;
看這個文件了解詳情。