代理app请求地址访问本机服务(同一局域网的本地起的服务器)方便测试app

应用场景

(手机应用域名请求局域网pc本地服务)因使用的dcloud wap2app将m站改为app,wap2app指定后端域名并解析为appid,不能更换请求地址,做分享等功能只能在手机上测试,搭建测试环境复杂,故想将app请求域名代理映射到局域网中的pc端后台服务上,有此想法开始实施。

实施想法

pc端可以使用hosts文件来指定域名映射,手机端不能修改hosts,但我们可以通过设置代理让手机的网络通过pc电脑端访问,此时电脑在配置hosts将app应用请求的服务域名映射到pc电脑服务的IP地址上。

hosts说明

简单明了的说,你请求的域名会先到hosts配置中找是否有匹配的,有直接使用。没有再去dns中查找(如果设置了hosts未生效请清理浏览器dns缓存 和 本机dns缓存 cmd -》 ipconfig /flushdns)

pc现在fiddler实现对端口的监听

在这里插入图片描述
此时我们将监听8888端口进行流量转发

手机设置代理

在这里插入图片描述
首先要确保手机和电脑在同一个局域网内
代理服务器地址为pc电脑的IP地址 cmd ipconfig查看
代理服务地址此地址就是上一步pc设置的监听端口

hosts配置映射

C:\Windows\System32\drivers\etc下的hosts文件修改添加映射
在这里插入图片描述
也可以使用switchhosts来配置,下载switchhosts为开源应用。记得使用管理员权限运行

现在手机可以访问了

访问流程

手机应用发出请求test.com.cn到代理服务器 192.168.46.184:8888端口 代理服务器转发请求test.com.cn 到hosts文件查找test.com.cn对应本机192.168.46.184(没写端口默认80,hosts中不嫩填写端口所以我本地服务起动的80端口)好了就是这么个流程

使用中遇到的问题

1.手机网络关闭代理,打开app正常,第二天打开代理,访问页面因是Vue请求后端无地址无变化,发现是手机app缓存了页面导致请求的还是服务器的地址,卸载app重新安装。
2.前后台跨域问题,因拦截的app请求前端地址域名列入app.com.cn/appweb请求后台地址是192.168.46.184:8080/app不是同一个域名所以会导致跨域,此时我们可以将后台和前台域名配置一样列入前台app.com.cn/appweb后台配置app.com.cn/app
这样就不会跨域了,我们在通过switchhost之前配置的域名转发到本地,再利用nginx路径做代理

 		 listen 80;
        server_name app.com.cn ;
        location /app {//后台服务代理
            proxy_pass   http://192.168.46.184:8080;//后台服务地址
        }
        location /appweb{//页面服务代理
            proxy_pass   http://192.168.46.184:8081;//前台服务地址
        }

特别鸣谢

谢谢实现过程中蔡兄的提点,感谢观看。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值