在公司中使用nodejs构建代理服务器实现先后台分离,代码不能拿出来,而后出现httpProxy代理资源的时候总是出现404.明明被代理的接口是存在的。代码大概以下:node
var http = require('http'), httpProxy = require('http-proxy'); var proxy = httpProxy.createProxyServer({}); var server = http.createServer(function(req, res) { proxy.web(req, res, { target: 'http://www.cnblogs.com/xiaopen/' }); }); console.log("listening on port 5050") server.listen(5050);
而后报错或者是404错误码。web
解决方案:服务器
在代理请求中,把请求头中的host给删除,改进代码以下:ui
var http = require('http'), httpProxy = require('http-proxy'); var proxy = httpProxy.createProxyServer({}); var server = http.createServer(function(req, res) { delete req.headers.host; proxy.web(req, res, { target: 'http://www.cnblogs.com/xiaopen/' }); }); console.log("listening on port 5050") server.listen(5050);
而后如期运行正确。spa
代理