web-dev-qa-db-fra.com

exécuter l'application web node.js sur un port 80 sous Windows

Je dois faire en sorte que mon application Web node.js locale écoute 80 port. Maintenant, si je lance mon application sur le port 80, je reçois cet erro

events.js:72
        throw er; // Unhandled 'error' event
          ^
Error: listen EACCES
    at errnoException (net.js:901:11)
    at Server._listen2 (net.js:1020:19)
    at listen (net.js:1061:10)
    at Server.listen (net.js:1127:5)
    at Object.<anonymous> (\scripts\server.js:23:4)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10) 

Et si vous exécutez l'application sur le port 4321, cette erreur ne se reproduit pas, elle dépend donc du port.

Que dois-je faire pour pouvoir exécuter mon application sur le port 80 sous Windows 7

15
silent_coder

Sur la machine Windows, votre port probablement occupé avec IIS Server. Essayez d’arrêter iis d’abord et ensuite, exécutez node.js webapp avec le port 80.

16
Ph0en1x

IIS sur le port 80 est définitivement en cause. Et au lieu de le désactiver, vous pouvez essayer le nœud IIS. http://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx Vous n'avez probablement pas besoin du port 80 dans le développement local, mais si vous passez en production sur une machine Windows IIS Node est un bon choix pour équilibrer la charge.

4
Serhii Kuts

Sigh - Je viens de découvrir que SKYPE.EXE se cachait sur mes ports 80 et 443. Utilisez netstat -anb pour voir ce qui pourrait empêcher node.exe d'accepter les sockets sur ces ports ...

1
Jimme

Comme @jimme, mon problème était dû au fait que j'avais installé le client Skype pour tester un autre projet sur le même ordinateur de développement.

Dans mon cas, je pouvais }).listen(80); mais pas }).listen(80, "0.0.0.0");. Mon serveur était inaccessible depuis autre chose que localhost. Lorsque j'ai enquêté en faisant netstat -abn, je pouvais voir que quelque chose écoutait sur ce port, mais il n'y avait aucune information sur le processus. J'ai eu de la chance avec l'info que "Windows tente de prendre en charge de tels services inflexibles en ne liant pas son mécanisme de répartition au port 80 jusqu'à ce que quelque chose le demande de manière active. (C'est pourquoi vous ne verrez pas nécessairement un problème au départ, mais vous risquez de rencontrer ce problème. après une sorte de mise à jour ou de changement de configuration), "à https://serverfault.com/questions/65717/port-80-is-being-used-by-system-pid-4- what-is-that qui pointait vers l'article https://www.mikeplate.com/2011/11/06/stop-http-sys-from-listening-on-port-80-in-windows/ .

Lorsque j’ai vu cette information importante et la réponse de @jimme, je me suis rappelé que j’avais également installé Skype. Je viens juste de faire en sorte que skype ne démarre pas au démarrage et j'étais bon.

0
Rich Hildred