gpt4 book ai didi

node.js - 在 Node http-proxy 后面 sails

转载 作者:太空宇宙 更新时间:2023-11-03 21:59:13 25 4
gpt4 key购买 nike

我正在尝试将多个 sails 服务器放在同一台服务器上,为此我想放置一个 Node http-proxy,将每个域重定向到正确的服务器上,如下所示:

var http = require('http'),
httpProxy = require('http-proxy'),
proxy = httpProxy.createProxyServer({}),
url = require('url');

http.createServer(function(req, res)
{
var hostname = req.headers.host.split(":")[0];
var pathname = url.parse(req.url).pathname;

switch(hostname)
{
case 'example.com':
proxy.web(req, res, { target: 'http://localhost:8080' });
break;
case 'dev.example.com':
proxy.web(req, res, { target: 'http://localhost:8081' });
break;
default:
proxy.web(req, res, { target: 'http://localhost:80' });
}
}).listen(80, function() {
console.log('proxy listening on port 80');
});

但是在调用新页面后,我遇到此错误并且代理崩溃:

/var/www/default/node_modules/http-proxy/lib/http-proxy/index.js:119
throw err;
^
Error: socket hang up
at createHangUpError (_http_client.js:215:15)
at Socket.socketCloseListener (_http_client.js:247:23)
at Socket.emit (events.js:129:20)
at TCP.close (net.js:485:12)

我想我错过了一些转发套接字的代码,但我该怎么做呢?这种代理对于生产来说足够强大吗?

最佳答案

您仅处理 http 请求的代理,您还应该处理 socket 请求。

这是一个小技巧,您可以在应用程序中添加逻辑。

proxyServer.on('upgrade', function (req, socket, head) {

console.log(req)
proxy.ws(req, socket, head);
});

关于node.js - 在 Node http-proxy 后面 sails ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31797501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com