ECS的内网机器是无法连接外网,所以考虑使用外网机器作为代理
采用 squid 做正向代理缓存服务
首先确认内网ECS的网段为: 10.0.0.0/8
然后检查squid是否安装
安装squid
配置squid
初始化
用root权限运行
添加端口转发(在路由前将3128端口转发至80)
查看配置
在内网的机器上安装nodeJS(tar包)
配置nodeJS的代理
至此,nodeJs就可以访问外网安装modules了
代理程序 来源于 web-proxy-master 基于node做的代理服务器
nodejs在windows上运行 ,运行命令如下,启动起来的地址是 http://localhost:6001/ ( localhost = 192.168.0.105)
在200上的linux中的/davido/project/nginx-1.17.10_prefix中conf/host/localhost_6066.conf配置以下参数
重启nginx后,在程序中配置天地图访问代理路径为 "proxy": " http://192.168.0.200:6066/proxy/ ",
可以在web页面上看到天地图已经加载出来了。
现在尝试把代理服务器部署到linux上,以下是操作的步骤
参考链接地址为 nodejs 在linux上后台运行
和 linux下使用forever进行管理
linux 提前已经安装nodejs ,路径是/davido/local/ds/nodejs/
出错了, -bash: forever: command not found ,需设置环境变量
forever 管理
修改nginx中代理配置,修改成 http://192.168.0.200:6001 ,把200服务器上的6001端口放开,代理没起作用;
前端ui项目启动后,调用后端接口,报500,将接口在地址改为服务器的ip后验证后接口是正常的。
gateway 上部署了多个server,比如api-user ,api-auth ,api-iips
调用的api-iips接口需要通过网关gateway(172.16.101.224:9200)转发到api-iips server方可。
接口转发-需要将 http://localhost:8080/api-iips/infomation/list
转换成 http://172.16.101.224:9200/api-iips/infomation/list
故,用到了代理服务器
总结一句话就是:前端应用和后端 API 服务器没有运行在同一个主机上,你需要在开发环境下将 API 请求代理到 API 服务器。
vue.config。js中关于代理的具体配置如下图:
一个配置代理服务器的中间件,让Node.js代理变得简单。
更多相关内容 https://github.com/chimurai/http-proxy-middleware