美文网首页
公司开发环境下,外网访问到你的内网服务

公司开发环境下,外网访问到你的内网服务

作者: 天草二十六_简村人 | 来源:发表于2022-09-17 18:42 被阅读0次

    一、背景

    和第三方服务,比如微信、钉钉等做小程序、公众号和支付对接的时候,如何搭建一个可以让外网能够访问到的网络环境。这是我们经常会遇到的问题。

    二、整体网络图

    image.png

    比如内网有一个java服务,它需要暴露一个回调接口,让微信来调用。
    你可以找到开发环境所在的网络外网出口IP,做好端口映射到Kong外网。


    image.png

    这里的外网Ip地址是122.225.172.10,申请到的外网端口是6108,它映射到192.168.7.32:80(kong的地址)。所以当你访问

    curl -X POST http://122.225.172.10:6108/pay/api/wx/notify
    #或者
    curl -X POST http://pay-test.xxx.com/pay/api/wx/notify
    
    #内网下,可以访问以下地址:
    #注意不需要输入“/pay”
    curl -X POST http://192.168.80.224:9029/api/wx/notify  
    #也可以访问kong网关,但是需要输入“/pay”
    curl -X POST http://192.168.7.32/pay/api/wx/notify
    
    

    而kong它会反向代理你的后端服务(192.168.80.224:9029)。


    image.png

    三、总结

    需要注意的是,同一个路由地址,如果其他路由已配置了"/",会容易导致你的路由地址屏蔽。

    image.png

    注意,上面这里的Path已配置了"/",其他相等的Hosts值的路由,注意就不能配置"/"了。

    image.png

    目前存在的问题是,后端接口的映射都是OK的,但是前端页面就只能一个。是因为我们去掉了Path,前端的地址就在其他的路由地址找不到。

    下面举例说明:
    http://pay-test.xxx.com/pay,它会跳转到 http://192.168.80.224:9029。

    首页的.html文件,需要引入css和js等文件,它的地址是相对路径,未上传到oss等云上,会出现地址404的问题。

    所以地址:http://pay-test.xxx.com/css/main.css, 就会变成http://192.168.80.224:9029/css/main.css

    要求你必须配置path="/"。

    换句话说,如果你“/pay”的路由下未配置,其他的路由配置了path="/",那么你的前端资源就无法被代理到http://192.168.80.224:9029/css/main.css

    解决办法: 前端把css和js、html等资源还是上传到OSS,然后在Kong的upstream中的target配置对应的地址。其实就是让你的前端资源不要采用相对路径,依赖uri就会出现上面的4040错误。

    相关文章

      网友评论

          本文标题:公司开发环境下,外网访问到你的内网服务

          本文链接:https://www.haomeiwen.com/subject/afjeortx.html