首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有SSL的基本Redbird反向代理在Ubuntu 14.04上不工作

带有SSL的基本Redbird反向代理在Ubuntu 14.04上不工作
EN

Stack Overflow用户
提问于 2015-08-26 05:29:44
回答 1查看 1.5K关注 0票数 1

这是可行的,通过到https://sensorypanel.net进行测试

代码语言:javascript
复制
var fs = require('fs');

var http = require('http');
http.createServer(function(req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(80, '0.0.0.0');

var https = require('https');
var options = {
    key: fs.readFileSync('certs/sensorypanel.net/sensorypanel_net-key.pem'),
    cert: fs.readFileSync('certs/sensorypanel.net/sensorypanel_net.crt'),
    ca: fs.readFileSync('certs/ca_bundle.crt')
};
https.createServer(options, function(req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello SSL World\n');
}).listen(443, '0.0.0.0');

但是,使用红鸟作为反向代理,这是行不通的:

代码语言:javascript
复制
var redbird = require('redbird'),
    http = require('http');

var proxy = redbird({
    port: 80,
    ssl: {
            port: 443,
            key: 'certs/sensorypanel.net/sensorypanel_net-key.pem',
            cert: 'certs/sensorypanel.net/sensorypanel_net.crt',
            ca: 'certs/ca_bundle.crt'
    }
});

proxy.register('sensorypanel.net', 'http://localhost:4001', {ssl: true});

http.createServer(function(req, res) {
    console.log('Got a request!');
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(4001, '0.0.0.0');

连接不会立即被拒绝。它只是挂着。我仍然可以通过http://sensorypanel.net:4001绕过代理,该代理验证底层的HTTP服务是否正常工作。防火墙关闭了。

下面是日志的一个示例:

代码语言:javascript
复制
{"name":"redbird","hostname":"sensorypanel.net","pid":1370,"level":30,"msg":"Listening to HTTPS requests on port 443","time":"2015-08-26T04:46:05.919Z","v":0}
{"name":"redbird","hostname":"sensorypanel.net","pid":1370,"level":30,"msg":"80 'Started a Redbird reverse proxy server'","time":"2015-08-26T04:46:05.925Z","v":0}
{"name":"redbird","hostname":"sensorypanel.net","pid":1370,"level":30,"from":    {"protocol":"http:","slashes":true,"auth":null,"host":"sensorypanel.net","port":null,"hostname":"sensorypanel.net","hash":null,"search":null,"query":null,"pathname":"/","path":"/","href":"http://sensorypanel.net/"},"to":    {"protocol":"http:","slashes":true,"auth":null,"host":"localhost:4001","port":"4001","hostname":"localhost","hash":null,"search":null,"query":null,"pathname":"/","path":"/","href":"http://localhost:4001/","sslRedirect":true,"useTargetHostHeader":false},"msg":"Registered a new route","time":"2015-08-26T04:46:05.931Z","v":0}
{"name":"redbird","hostname":"sensorypanel.net","pid":1370,"level":50,"err":{"message":"socket hang up","name":"Error","stack":"Error: socket hang up\n    at TLSSocket.<anonymous> (_tls_wrap.js:664:25)\n    at TLSSocket.emit (events.js:107:17)\n    at TCP.close (net.js:485:12)","code":"ECONNRESET"},"msg":"HTTPS Client  Error","time":"2015-08-26T04:46:27.847Z","v":0}
{"name":"redbird","hostname":"sensorypanel.net","pid":1370,"level":50,"err":{"message":"socket hang up","name":"Error","stack":"Error: socket hang up\n    at TLSSocket.<anonymous> (_tls_wrap.js:664:25)\n    at TLSSocket.emit (events.js:107:17)\n    at TCP.close (net.js:485:12)","code":"ECONNRESET"},"msg":"HTTPS Client  Error","time":"2015-08-26T04:46:41.931Z","v":0}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-26 10:12:14

这里这里报道,这是红鸟的一个bug。这是由一些node.js API的变化引起的,并于2015年10月27日在此承诺中进行了修正。如果你有同样的问题,你应该升级你的红鸟更新版本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32218627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档