漫畫 Nginx 的 subfilter

大週五的,馬上就要下班了,接到一個需求,一個老網站,需要加 SSL 證書,改成全站 HTTPS,沒多想,不就是加個證書麼

certbot 腳本一跑,證書自動配好

certbot 自動添加證書,並自動配置強制跳轉到 HTTPS,訪問測試

網站樣式全亂,打開開發者工具

原來是資源都是 http 的,被瀏覽器 blocked,無法加載,查看代碼,發現資源都是直接寫死 http 協議的,內容很多,前端文件還都是壓縮過的,這要手動改肯定是不可能的

突然想到 Nginx 的 subfilter 模塊,subfilter 可以查詢並修改 response 內容,所以可以將響應內容中的 http 替換爲 https

通過這樣的方式所有內容就會都變成 https 的請求,Nginx 配置很簡單

subfilter 類型是文檔類型,替換是將 http:// 替換爲 https://,然後配置只替換一次,否則會一直處理替換操作

這要再次訪問網站的時候,就可以正常訪問,除了這種方式,其實在 linux 下,也可以通過 sed 命令遍歷完全替換目錄下所有文件中的 http,但是還是推薦用 Nginx 模塊的方式,可以不去改動代碼

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/QAUBIJ74kjr7ARMux6zaMg