node做代理转发怎么实现在响应服务器挂了之后自行切换代理的服务器

发布于 2022-09-11 21:06:11 字数 1468 浏览 24 评论 0

问题描述

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文