请教一个问题,前端和后端在同一个局域网下如何不暴露后端的情况下请求到数据。

2019-07-31 10:32:36 +08:00
 IdJoel

现在公司的项目是后端也绑定了个域名,前端去调用外网域名来进行请求数据的

运维 and 后端的想法是不暴露后端接口地址,用户在本地打开前端站点

前端最好能通过 192.168.x.xx:1234 进行数据交互

请教了一下别的朋友,他说运维做个内网穿透就行了

我是个前端,现在就是运维和后端都觉得这件事应该前端处理,但是我之前没遇到过这种问题,所以请教下各位我应该怎么做才能实现这个需求,(我隐隐感觉这不是前端能处理的问题,不过还是希望各位指点一二

2608 次点击
所在节点    问与答
8 条回复
fuermolv
2019-07-31 10:39:18 +08:00
在某个机器做一个 nginx 转发到后端服务
selfcreditgiving
2019-07-31 10:49:12 +08:00
如果用到 webpack、vue 这些, 有 proxyTable 设置一下就可以转发了
```javascript
proxyTable: {
'/getLoginName': {
target: 'http://192.168.0.127',
changeOrigin: true,
},
}

```
arthas2234
2019-07-31 10:49:38 +08:00
既然后端有域名,那就用 nginx 反向代理啊。域名解析到后端的地址,后端只监听本地 ip,用 nginx 转发
wc951
2019-07-31 11:19:30 +08:00
用户也在局域网里?
CEBBCAT
2019-07-31 11:23:12 +08:00
是需求过于天马行空还是我没看懂?这意思前端得用 JS 开一个代理服务器?可还是得回传数据啊,那不就被抓包得一清二楚了吗?
alienx717
2019-07-31 11:49:07 +08:00
你可一个改成 C/S 程序?
IdJoel
2019-07-31 13:25:31 +08:00
@fuermolv @arthas2234 @wc951
暂时做的是后端有域名 但是运维 and 后端希望后端没有域名 毕竟是同局域网 所以运维提出了一个“通过端口去请求数据”的建议。nginx 反向代理试过了 好像不大行。 用户肯定是不在局域网内的, 只是给用户一个网址展示前端的页面。

@selfcreditgiving
proxytable 只能应用于 dev 环境

@CEBBCAT
反正就是要求前端能取的到数据,但是后端的接口不对外暴露,举这样一个栗子

局域网:{
后端: 我可以访问,
前端: 我也可以访问
}


公网:{
前端:我可以访问,
后端:我不能访问
}


他希望我完成公网在访问前端的时候触发局域网前端访问后端取数据,然后通过前端在公网展示出来。


@alienx717
我去了解一下 C/S 程序 谢谢指点
leishi1313
2019-07-31 13:37:06 +08:00
我寻思了半天你的需求,现在终于明白了。你可以去看看 server side rendering,三大框架基本都有比较成熟的实现了,最后的效果就是用户直接拿到渲染好的页面,后端对用户是完全隐藏的(如果你们做的是无限滚动这种可能还是会有后端请求)

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

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

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

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

© 2021 V2EX