2011-09-12 2 views
0

내 노드 앱에 cluster npm을 사용하고 있습니다.https가 포함 된 node.js 클러스터

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

당신은 루트/수퍼 유저/관리자가 낮은 포트에 바인딩해야 할 것이다. 포트 80에 제대로 바인딩 할 수 있습니까? – amoebe

+0

80에도 바인딩 할 수 없습니다. 흠 ... node.js 앱을 루트로 실행하는 것이 좋다고 생각하십니까? – Luc

+0

루트 권한으로 앱을 실행할 때 권한이 없습니다. – Luc

답변

4

기본적으로 노드는 하위 포트에 액세스 할 수 없습니다 (사용자가 root이 아닌 경우). 모든 항구가 할 것이기 때문에 두려워하지 말라.

일반적으로 개발 목적으로 사용 하나는 8443입니다 :

.listen(8443); 
+2

+1 당신은과 같이 8443에 443을 전달할 수 있습니다 : sudo는의 iptables -t NAT -A PREROUTING -p 8443 다음 sudo는 을 iptables에가-저장 --to-443 포트 --dport TCP 리디렉션 -j 이들을 rc.local에 추가하십시오. – talentedmrjones

관련 문제