前提: A 应用中通过微前端的方式嵌入了一个 B 应用,A 应用运行在 nginx 监听的 443 端口,防火墙开放 443 端口。 B 应用运行在 8081 端口并且防火墙不开放该端口,B 应用拦截器中做了一个简单的认证,只要请求 B 应用的接口中的请求头含有 X-User-Name 头部并且值不为空就能请求成功,否则认证失败。 现在在 nginx 中将/source (表示 B 应用接口的请求)开头的请求都代理到了 8081 ,且同时自动添加请求头部 X-User-Name ,本意是使 A 应用能正常访问 B 应用 但是浏览器访问 Protocol://ip:6433/source 时 B 应用会自动跳转到自己的/home 地址,然后请求主页相关接口并且都带上了头部,导致可以从浏览器访问 B 应用。 在不修改代码的情况下,能不能只通过修改 nginx 配置实现浏览器无法访问 B 应用,A 应用通过嵌入方式可以正常访问 B 应用;
nginx 反向代理配置:
location ^~ /source { proxy_set_header X-User-Name '1'; proxy_pass https://127.0.0.1:8081; }
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.