赞
踩
(手机应用域名请求局域网pc本地服务)因使用的dcloud wap2app将m站改为app,wap2app指定后端域名并解析为appid,不能更换请求地址,做分享等功能只能在手机上测试,搭建测试环境复杂,故想将app请求域名代理映射到局域网中的pc端后台服务上,有此想法开始实施。
pc端可以使用hosts文件来指定域名映射,手机端不能修改hosts,但我们可以通过设置代理让手机的网络通过pc电脑端访问,此时电脑在配置hosts将app应用请求的服务域名映射到pc电脑服务的IP地址上。
简单明了的说,你请求的域名会先到hosts配置中找是否有匹配的,有直接使用。没有再去dns中查找(如果设置了hosts未生效请清理浏览器dns缓存 和 本机dns缓存 cmd -》 ipconfig /flushdns)
此时我们将监听8888端口进行流量转发
首先要确保手机和电脑在同一个局域网内
代理服务器地址为pc电脑的IP地址 cmd ipconfig查看
代理服务地址此地址就是上一步pc设置的监听端口
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;//前台服务地址
}
谢谢实现过程中蔡兄的提点,感谢观看。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。