node.js http-proxy redirect
node.js http-proxy redirect
我如何在node.js中使用http代理模块遵循重定向,以便我可以在浏览器中保持相同的url ?
我有两个网站(a和B)背后的反向代理,用户访问网站a通过反向代理完美,但有一个在网站a到网站B,使url在浏览器更改到网站B,它应该仍然显示在浏览器中的反向代理url
这是我当前的代码
var port = process.env.PORT;
var http = require('follow-redirects').http,
httpProxy = require('http-proxy'),
url = require('url');
// http Server
var proxy = new httpProxy.createServer({});
var httpServer = http.createServer(function (req, res) {
console.log('request received: ' + req.path);
var target = 'http://siteA/';
if (!req.url.toString().endsWith('/')) {
target = target + '/';
}
if (req.url.toString() != '/') {
target = target + req.url;
}
console.log('routing request to ' + target);
var urlObj = url.parse(req.url);
req.headers['host'] = urlObj.host;
req.headers['url'] = urlObj.href;
proxy.proxyRequest(req, res, {
host: urlObj.host,
target: target,
enable: { xforward: true }
});
});
httpServer.listen(port);
console.log("server listening at port: " + port);
String.prototype.endsWith = function (s) {
return this.length >= s.length && this.substr(this.length - s.length) == s;
}
String.prototype.startsWith = function (str) {
return this.indexOf(str) == 0;
};
我要把这个答案贴出来,尽管我怀疑你不会相信,但你希望做的事情使用你的方法是不可行的。网络不是这样运作的。我在这个回答中详细说明了为什么这是正确的。这样做的工作是让你的用户在他们的浏览器设置中将你的节点代理配置为代理服务器,然后像往常一样将他们的目标url放在浏览器地址栏中。这就是网络支持透明代理的方式。让用户把你的代理地址放在他们的地址栏里,作为一种通用的方法是不可行的,因为web并不是完全由静态HTML页面中的相对链接组成的。
相关文章:
- Meteor如何接收HTTP请求
- 在我的情况下,如何进行http请求
- //而不是在src=“”上使用http://"属性
- 我无法使用angularJs($http)访问服务器
- AJAX简单错误.XMLHttpRequest无法加载http://localhost/mpl/getPage.php.
- 如何将PHP get查询转换为Meteor's HTTP.get()
- Node http-proxy-middleware 不能与本地服务器一起工作
- Node JS http-proxy - 创建的 URL 存在问题
- 如何使用node.js http-proxy 来记录计算机中的 HTTP 流量
- 使用 $http.post 和 res.redirect,而不解决承诺
- $http POST & Passport.Js Redirect
- 将代理服务器(如 node-http-proxy )用于一个端口上具有单个应用程序的节点应用程序有什么意义
- 使用Express http-proxy存储来自API的令牌
- Fb-Like按钮+对<http://www.facebook.com>以获取属性Proxy.Install
- Express, http-proxy-middleware and net::ERR_CONNECTION_REFUS
- 运行Node服务器接管整个服务器,使其他项目目录无法访问,即使使用Node -http-proxy
- Http-proxy-middleware不转发完整路径
- node.js http-proxy redirect
- 关闭离线模式下的Browsersync和http-proxy-middleware
- Http-proxy一直挂起