node做代理转发怎么实现在响应服务器挂了之后自行切换代理的服务器
问题描述
node做代理转发怎么实现在响应服务器挂了之后自行切换代理的服务器,不能用该方案外的其他方案,比如Nginx代理,另起服务器监听重启等方案
问题出现的环境背景及自己尝试过哪些方法
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
app.js
let { proxyDo } = require('../middleware/proxy')
proxyDo(app,hosts) //hosts服务器池
proxy.js
const httpProxy = require('http-proxy');
let proxyDo = function(app,hosts){
let proxy = httpProxy.createProxyServer({
changeOrigin: true,
ignorePath: true
});
app.use((req, res) => {
proxy.web(req, res, {
target:hosts[0]
})
})
let cookie = ''
proxy.on('proxyReq', function (proxyReq, req, res) {
req.headers.cookie = cookie + req.headers.cookie
proxyReq._headers = req.headers
console.log("url:" + proxyReq.path);
return req
});
proxy.on('proxyRes', function (proxyRes, req, res) {
var JSESSIONID = proxyRes.headers['set-cookie']
if (JSESSIONID) {
cookie = JSESSIONID;
res.setHeader('Set-Cookie', proxyRes.headers['set-cookie'])
}
});
proxy.on('error', function (proxyReq, req, res) {
console.log('err:'+ proxyReq)
res.send("<h1>404 Not Found</h1>")
});
}
module.exports = { proxyDo }
你期待的结果是什么?实际看到的错误信息又是什么?
期待结果:代理转发的服务器挂了,前台发送请求无法响应或者响应错误的服务器资源,然后node自行更换到另一台配置好的代理服务器,直至没有一台服务器是好的吗,或者其中一台是好的终止
实际结果:代理服务器的host只能配置一次
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论