如何利用 sub_filter 指令在代理层自动修正 HTTPS 页面内引用的第三方静态链接

轻晨酱_5172

轻晨酱_5172

2026-05-24

678人浏览

原创

最直接有效的方式是用Nginx sub_filter在反向代理层将响应体中http://替换为https://,需禁用gzip、设置sub_filter_types扩展类型、锚定src/href等属性精准替换,并启用upgrade-insecure-requests头兜底动态场景。

如何利用 sub_filter 指令在代理层自动修正 https 页面内引用的第三方静态链接

最直接有效的方式,是在 Nginx 反向代理层用 sub_filter 对响应体中的第三方 HTTP 链接做字符串替换,把 http:// 改成 https://,同时配合 upgrade-insecure-requests 响应头覆盖 JS 动态拼接等漏网场景。这不是“能不能做”的问题,关键是“换得全、不破格式、不被压缩绕过”。

必须关闭响应压缩

gzip 或 brotli 压缩后的响应是二进制流,sub_filter 完全无法识别和处理明文内容。只要后端返回了 Content-Encoding: gzip,所有替换都会失效。

  • 在对应 location 块中加 gzip off;(最稳妥)
  • 或统一禁用代理层压缩:在 http 或 server 块中设 gzip off;
  • 避免依赖 gunzip on —— 兼容性差、性能开销大、且不能保证解压完整性

显式声明可处理的 MIME 类型

sub_filter 默认只作用于 text/html,但静态资源引用常出现在其他文本类型中,比如内联 JS、JSON 配置、CSS 文件甚至 HTML 注释里。

JenMusic
JenMusic

JenMusic是一款强调授权训练和高保真输出的 AI 音乐生成平台。

下载
  • 加上 sub_filter_types text/html text/javascript application/json text/css;
  • 若后端类型不规范,可用 sub_filter_types *; 强制覆盖所有响应(对图片、PDF 等二进制内容无影响,仅多一次无效扫描)
  • 务必确保后端响应头含 Content-Type,如 application/json; charset=utf-8

精准替换脚本与资源链接

不能简单全局替换 http://,否则会误伤 JSON 字段值、注释、URL 编码片段等。应锚定常见 HTML 属性上下文,提升安全性。

  • sub_filter 'src="http://' 'src="https://';
  • sub_filter "src='http://" "src='https://";
  • sub_filter 'href="http://' 'href="https://';(覆盖 CSS 中 @import、 等)
  • 必须配 sub_filter_once off;,否则只改第一个匹配项

补足 JS 动态拼接等盲区

前端用 document.write('<script src="'%20+%20protocol%20+%20'//cdn.com/a.js'&gt;&lt;/script&gt;')&lt;/code&gt;%20%E8%BF%99%E7%B1%BB%E6%96%B9%E5%BC%8F%E7%94%9F%E6%88%90%E9%93%BE%E6%8E%A5%E6%97%B6%EF%BC%8C&lt;code&gt;sub_filter&lt;/code&gt;%20%E6%97%A0%E6%B3%95%E4%BB%8B%E5%85%A5%E3%80%82%E6%AD%A4%E6%97%B6%E9%9C%80%E6%B5%8F%E8%A7%88%E5%99%A8%E7%AB%AF%E8%87%AA%E5%8A%A8%E5%8D%87%E7%89%88%EF%BC%9A&lt;/p&gt;&lt;ul&gt;%0A%20%20&lt;li&gt;%E6%B7%BB%E5%8A%A0%E5%93%8D%E5%BA%94%E5%A4%B4%EF%BC%9A&lt;code&gt;add_header%20Content-Security-Policy%20" upgrade-insecure-requests> <li>&#35813;&#26631;&#20934;&#30001; W3C &#23450;&#20041;&#65292;&#29616;&#20195;&#27983;&#35272;&#22120;&#20250;&#23558;&#39029;&#38754;&#20869;&#25152;&#26377; <code>http://</script> 资源请求自动改为 https://

  • 与 sub_filter 形成互补:一个修静态 HTML,一个兜底动态行为
  • 相关专题

    更多
    http与https有哪些区别
    http与https有哪些区别

    http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    2024.08.16

    5510

    6

    Tailwind CSS 如何制作导航栏和卡片
    Tailwind CSS 如何制作导航栏和卡片

    用 Tailwind CSS 制作导航栏和卡片,可先搭建语义化结构,再组合 Flex、Grid、间距、圆角与阴影类。这里整理横向导航、移动端菜单、卡片网格及悬停效果的相关文章,帮助你把常见页面组件做得清晰且适配不同屏幕。

    2026.11.03

    0

    17

    Tailwind CSS 响应式布局怎么写
    Tailwind CSS 响应式布局怎么写

    Tailwind CSS 响应式布局通常从移动端样式写起,再用 sm、md、lg 等前缀调整不同屏幕宽度下的网格、间距和导航。本专题整理断点配置、Grid 与 Flex 自适应布局及常见溢出问题,帮助你逐步完成多设备适配。

    2026.11.03

    0

    19

    Tailwind CSS 常用类名怎么记
    Tailwind CSS 常用类名怎么记

    Tailwind CSS 类名很多,先按布局、间距、文字、颜色和状态分组记忆,再通过官方文档检索具体写法。本专题结合类名排序、动态拼接失效、自定义实用类等问题,帮助你建立常用类名的速查方法。

    2026.11.03

    0

    12

    码上飞入口地址合集
    码上飞入口地址合集

    本专题汇总了码上飞(CodeFlying)的官方入口地址合集,涵盖官网主站及网页版在线使用入口,支持注册登录后直接在线体验零代码AI应用生成。同时整理了APP端下载渠道与小程序入口,助你快速访问平台,通过自然语言描述需求即可生成应用、小程序或网站。

    2026.11.03

    0

    10

    Uvicorn 报错与问题解决教程
    Uvicorn 报错与问题解决教程

    本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

    2026.11.02

    20

    14

    Uvicorn使用教程
    Uvicorn使用教程

    本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

    2026.11.02

    20

    17

    Uvicorn安装配置教程
    Uvicorn安装配置教程

    本专题汇总了Uvicorn的安装配置教程与部署指南,涵盖通过pip安装Uvicorn、启动FastAPI/Starlette应用、开发模式热重载(--reload)及多进程工作模式配置等核心操作。同时整理了结合Gunicorn的生产部署方案、HTTPS与反向代理配置及性能调优技巧,助你快速完成Uvicorn服务的安装与上线部署。

    2026.11.02

    20

    17

    Vite 项目如何打包和部署
    Vite 项目如何打包和部署

    Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

    2026.10.28

    120

    16

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    零基础精通 PS 视频教程
    零基础精通 PS 视频教程

    共268课时 | 120.5万人学习

    前端工程师必备技能—PS切图
    前端工程师必备技能—PS切图

    共11课时 | 2.2万人学习

    麦子学院Photoshop切片视频教程
    麦子学院Photoshop切片视频教程

    共13课时 | 4.3万人学习