2012-08-28 3 views
2

Je ne peux pas exécuter 'node myApp.js' sur mon serveur EC2 Ubuntu 12.04 LTS.Sur EC2: node.js sans sudo

Il répond avec l'erreur:

events.js:66 
throw arguments[1]; // Unhandled 'error' event 
       ^
Error: listen EACCES 
    at errnoException (net.js:768:11) 
    at HTTPServer.Server._listen2 (net.js:891:19) 
    at listen (net.js:935:10) 
    at HTTPServer.Server.listen (net.js:984:5) 

J'ai googlé autour, mais pas de solution qui semble correspondre.

+1

écoutez-vous sur le numéro de port 1024 ou au dessous de? Ceux-ci nécessitent sudo. Les ports ci-dessus devraient fonctionner sans sudo. – JohnnyHK

Répondre

6

Sur Linux, seule la racine est autorisée à utiliser les ports < = 1024. Si vous voulez que votre serveur Web pour écouter sur le port 80, laissez votre application écouter sur un port> 1024 (à savoir 8080) et utiliser iptables pour rediriger vers ce port comme ceci:

# sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080