V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
IdJoel
V2EX  ›  问与答

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

  •  
  •   IdJoel · 2019-07-31 10:32:36 +08:00 · 2812 次点击
    这是一个创建于 1971 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

    @selfcreditgiving
    proxytable 只能应用于 dev 环境

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

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


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


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


    @alienx717
    我去了解一下 C/S 程序 谢谢指点
    leishi1313
        8
    leishi1313  
       2019-07-31 13:37:06 +08:00 via Android   ❤️ 1
    我寻思了半天你的需求,现在终于明白了。你可以去看看 server side rendering,三大框架基本都有比较成熟的实现了,最后的效果就是用户直接拿到渲染好的页面,后端对用户是完全隐藏的(如果你们做的是无限滚动这种可能还是会有后端请求)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2712 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:20 · PVG 16:20 · LAX 00:20 · JFK 03:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.