Nginx 重寫 url 因為 https 不起作用

Nginx 重寫 url 因為 https 不起作用

由於某種原因,我的任務是將 url 從 HTTPS 重寫為 HTTP。

背景:我使用 Nginx 作為反向代理,需要在 443 區塊中包含位置區塊,而應用程式會給出混合資源錯誤並且無法在 HTTPS 上工作(開發人員是這麼說的)。

我想要得到的:我希望 Nginx 位置區塊位於 44 伺服器區塊中,但所有流量都透過 HTTP (80) 完成。

有人知道怎麼做嗎?我正在考慮重寫 URL。

是的,我知道將它放在連接埠 80 伺服器區塊中比放在 443 連接埠上更有意義。

位置區塊

location /solution_tools/ {
   auth_basic "Please enter your credentials";
   auth_basic_user_file solutions_utils.pass;
   proxy_pass http://solution_tools/;
 }

答案1

“該應用程式出現混合資源錯誤,並且無法在 HTTPS 上運行(開發人員是這麼說的)”

然後開發人員應該修復該應用程序,因為當今任何不支援 HTTPS 的 Web 應用程式都已完全棄用。

如果應用程式無法修復,那麼與其重定向回純 HTTP,不如做相反的事情,利用您已經在運行反向代理的事實來獲得最大好處,並重寫引用絕對 URL 的“錯誤”html 代碼http http://www.exameple.com/到 httpshttpS://www.exameple.com/並以此方式解決混合內容問題。

http://nginx.org/en/docs/http/ngx_http_sub_module.html

location / {
    sub_filter 'http://$host/'  '"https://$host/';
    sub_filter_once on;
}

相關內容