J'utilise le node.js et socket.io.
Mon application s'exécute sur le port 3000. L'application démarre à partir de l'url: mydomain.com:3000/
Je veux exécuter l'application depuis mydomain.com - Je veux supprimer le port de l'url.
Où et comment puis-je définir ce paramètre?
Trouvez votre server.listen
appel et changez le port de 3000
En 80
. N'oubliez pas que vous devez exécuter le programme avec la capacité CAP_NET_BIND_SERVICE
(Voir capabilities(7)
pour plus de détails) afin de vous lier aux ports inférieurs à 1024 sur les systèmes Linux. Le privilège root
contiendra ce privilège, ainsi que d'autres.
Si vous voulez l'exécuter "sans port" comme vous le décrivez, vous allez en fait l'exécuter sur le port 80. Vous ne pouvez pas le faire sans les autorisations root.
Donc au lieu de
node server.js
Vous avez besoin
Sudo node server.js
Cela suppose que vous disposez des autorisations Sudo sur la machine sur laquelle vous essayez de l'exécuter. Sinon, vous allez rencontrer des problèmes EACCESS. C'est ce que Sarnold essaie de vous dire.
C'est comme ça que je l'ai fait car j'utilise aussi Apache, je ne peux pas utiliser le port 80 car il le réserve. J'ai donc configuré une passe proxy. J'ai défini mon dossier/src pour qu'il soit ignoré.
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents/www.mysite.com"
ServerName local.www.mysite.com
ServerAlias local.www.mysite.com
ProxyPass /src !
ProxyPass / http://local.www.mysite.com:3000/
ProxyPassReverse / http://local.www.mysite.com:3000/
</VirtualHost>
Tout d'abord, vous souhaiterez probablement exécuter l'application à partir de votre hôte local, "127.0.0.1". Vous pouvez supprimer le port simplement en l'omettant dans la configuration node.js. Par défaut, les navigateurs Web recherchent des serveurs sur le port 80. Si vous souhaitez que votre serveur s'exécute sur le port 3000 pour une raison quelconque, il devra être inclus dans l'URL.