讨论请教大佬们 nginx如何只允许来自入口页的跳转请求

头像
fong
135阅读8评论

请教大佬们

公司业务有一个需求

A为入口页服务器(PHP)

B为另一个服务器,使用nginx反向代理,无代码,因此也不能写携带参数之类的

怎么让B只接受来自A入口页跳转而来的请求呢 (就是不是跳转来的 都block)

不知道表述得清不清楚

有偿求方案 谢谢大佬们 我来电你们

讨论话题:
想法&创意
城市:
其他
收藏
举报
加载中…
精选评论
头像
等级4

既然都是服务器 B直接限定 A的服务器ip不就好了么 管他什么转不转发呢 另外你的表述我们是在想不出来这样做的意义

emmm 从A跳转倒B,访问的ip依然是用户的ip 而不是A的ip

唐突了 确实是A的ip 跳转只是后端给浏览器一个302加地址 浏览器再去访问跳转的地址 我又想了个办法 后端在跳转的时候添加一个header头 hash一个密码 B通过hash同样的密码进行匹配 只是nginx我不知道 能不能添加插件做这样的工作,要是用go写网关就都可以

头像
等级0

这不就是 传统 soa 架构的 部署方式吗。 业务服务不公网暴露(B),所有请求走网关服务(A,内网调用B),这不是很常见吗。

因为没有前端经验 实在不会 可以说详细一点么大佬 或者给篇文章我去学习下

头像
等级3

增加http header转发;要么就带参数,用openresty lua来处理

http header转发不知道为什么我失败了。。

头像
等级0

如果不是严格验证的话,加个 cookie 用来验证:https://stackoverflow.com/questions/57996218/nginx-check-if-cookies-dont-exist
这种简单的方法,是可以绕过的。

如果严格验证,有一个想法,像 JWT 那样,A 上把 cookie 内容用密钥签好名,在 B 上用 lua 验证签名,我不知道 Lua 能不能做签名验证,也不知道会不会影响性能,只是一个想法,至少不用想着去用 redis 什么的。