代理程序 来源于 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端口放开,代理没起作用;
实现的原理和代理服务器原理如出一辙,只不过这里使用了Node中间件做为代理。需要注意的是, 浏览器向代理服务器请求时仍然遵循同源策略 ,别忘了在Node层通过CORS做跨域处理:
const https = require('https')
// 接受客户端请求
const sever = https.createServer((req, res) =>{
...
const { method, headers } = req
// 设置 CORS 允许跨域
res.writeHead(200, {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': '*',
'Access-Control-Allow-Headers': 'Content-Type',
...
})
// 请求服务器
const proxy = https.request({ host: 'xxx', method, headers, ...}, response =>{
let body = ''
response.on('data', chunk =>{ body = body + chunk })
response.on('end', () =>{
// 响应结果转发给客户端
res.end(body)
})
})
// 结束请求
proxy.end()
})
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)