2011-09-12 77 views
0

我正在使用cluster npm作为我的节点应用程序。node.js cluster with https

var cluster = require('cluster'); 
var app = express.createServer({ 
    key: fs.readFileSync('privatekey.pem'), 
    cert: fs.readFileSync('certificate.pem') 
}); 

cluster(app) 
.use(cluster.logger('logs')) 
.use(cluster.stats()) 
.use(cluster.pidfiles('pids')) 
.use(cluster.cli()) 
.listen(443); 

但是,当我使用端口443时,我得到了权限被拒绝。如果我使用另一个端口,它工作正常。很明显,443专用于https,因此我如何将它用于我的应用程序?

+0

您必须是root /超级用户/管理员绑定到低端口。你可以绑定到80端口吗? – amoebe

+0

我也无法绑定到80。嗯......你认为以root身份运行node.js应用程序是很好的吗? – Luc

+0

你是对的,当以root用户身份运行应用程序时没有pb。 – Luc

回答

4

默认情况下,节点不能访问较低的端口(除非你是root)。不要害怕,因为任何港口都会这么做。

通常用于开发目的,一个是8443

.listen(8443); 
+2

+1那么你可以转发443到8443,像这样: 须藤的iptables -t NAT -A PREROUTING -p tcp的--dport 443 -j REDIRECT --to-8443端口 然后 须藤iptables-save命令 一定要将这些添加到rc.local – talentedmrjones