限制某个接口只能通过公司内网访问

2019-08-05 15:59:22 +08:00
 cpj

本来打算在代码里获取 IP,通过正则判断是否为公司内网。后来发现,网段太多。。。 不知道 nginx 可否实现,只限制某一条接口通过内网访问,其他接口正常访问 或者有其他更好的解决方案

5680 次点击
所在节点    程序员
24 条回复
cpj
2019-08-06 13:17:43 +08:00
@aqqwiyth ojbk
MonoLogueChi
2019-08-06 14:07:51 +08:00
@aqqwiyth 但是你这样作要前端配合吧
aqqwiyth
2019-08-06 18:47:30 +08:00
@MonoLogueChi 不需要前端 /后端配合,, 题主说了是公司内网. 公司内网里面 DNS 与出口都是绝对可控的.

如果有运维参与的话, 开发完全不感知这个过程.

我用一个链路描述一下:
改造前:
前端请求--->nginx---->真实服务端
改造后:
前端请求(无感知)----内网 DNS---->内部 nginx(追加标识)----->服务端 nginx(验证标识,并卸载放行)----->真实服务端(无感知)
MonoLogueChi
2019-08-07 09:41:25 +08:00
@aqqwiyth 这不跟我说的是一回事吗,前端请求 -> nginx 代理(设置 header 头 X-Real-IP=$remote_addr,同时会自动记录 X-Forwarded-For) -> 经历 N 层代理 -> 后端。从得到前端请求的代理服务器到最后和后端对接的代理服务器,中间会一直带着这两个 header 头,X-Real-IP 记录的是前端发出请求的 IP,而每经过一层代理,X-Forwarded-For 都会增加一条记录,记录上一层请求发出的来源

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/589229

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX