我在靜態頁面提供者上設計了一個頁面,我希望在瀏覽我擁有的 www.example.org 網域(訪問 nginx 伺服器)時使其可用
目標:https://www.example.org/a/b
-->https://static-page-provider.com/c
- 使用者輸入
https://www.example.org/a/b
URL - 我自己託管的 nginx 代理程式
https://www.example.org
接收確切路徑 /a/b 上的請求,並且必須代理傳遞:https://static-page-provider.com/c
遠端伺服器應該收到帶有 HOST 標頭的GET 請求static-page-provider.com
- 使用者應該
https://www.example.org/a/b
在 URL 中看到 - 它對於帶斜杠的最終地址應該是相同的
https://www.example.org/a/b/
->https://static-page-provider.com/c/
(我實際上並不關心它是否是/c/
或僅/c
適用於這兩種情況中的任何一種
應該保留
- https://www.example.org/a/b2-->https://www.example.org/a/b2
- https://www.example.org/a/b/c-->https://www.example.org/a/b/c
- https://www.example.org/a-->https://www.example.org/a
是否可以 ? (或是否有安全隱患使這成為不可能?)。我收到 502 Bad Gateway,並且在日誌中看到 SSL 相關錯誤
2020/01/23 08:59:43 [error] 30072#0: *499 SSL_do_handshake() failed (SSL: error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error) while SSL handshaking to upstream, client: 172.31.28.3, server: www.example.org, request: "GET /a/b/ HTTP/1.1", upstream: "https://xx.xx.xx.xx:443/c/", host: "www.example.com"
當嘗試下面的配置。我也不確定這個配置是否完全匹配(是否是/a/b/c
規則的目標?)。
location /a/b/ {
proxy_pass https://static-page-provider.com/c/;
proxy_set_header host mydomain.static-page-provider.com;
}
如果包含最終內容的實際 URLhttps://static-page-provider.com/c/
返回 301 重定向(例如到https://static-page-provider-2.com/c/
),是否有可能遵循使用者的重定向,而使用者仍然看到https://www.example.org/a/b
?
使用 nginx/1.12.2
編輯:在沒有 httpS 的靜態提供者上使用 proxy_pass 時它有點工作,但隨後我需要有一個安全連接。