nginx 配置nodejs后台代理

nginx 配置nodejs后台代理,第1张

代理程序 来源于 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()

})


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/104062.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-10
下一篇2023-03-10

发表评论

登录后才能评论

评论列表(0条)

    保存