2012-03-02 168 views
22

Uso node.js y socket.io.Node.js - ¿Cómo puedo eliminar el puerto de la url?

Mi aplicación se ejecuta en el puerto 3000. La aplicación se inicia a partir de la url: mydomain.com:3000/

quiero ejecutar la aplicación desde mydomain.com - Quiero eliminar la puerto desde la url.

¿Dónde y cómo puedo establecer esta configuración?

+0

Esto no tiene nada que ver con node.js. Esto es básico de http. – TheHippo

+0

También la búsqueda lo planteaba: http://stackoverflow.com/questions/14303690/nodejs-domain-without-número – TheHippo

Respuesta

19

Encuentra tu server.listen llama y cambia el puerto de 3000 a 80. No olvide que debe ejecutar el programa con la capacidad CAP_NET_BIND_SERVICE (consulte capabilities(7) para obtener detalles) para enlazar a puertos de menos de 1024 en sistemas Linux. El privilegio root contendrá este y otros privilegios.

+0

Intenté configurar el puerto en 80 La aplicación se eliminó. Está prohibido. – Jenan

+0

"La aplicación se cayó"? Qué significa eso? ¿Lo está ejecutando como 'raíz'? ¿Puedes? – sarnold

+0

Conosle escribe línea: información - socket.io started, warn - error planteado: Error: EACCES, permiso denegado – Jenan

1

En primer lugar, es probable que desee ejecutar la aplicación desde su servidor local, "127.0.0.1". Puede eliminar el puerto simplemente omitiéndolo en la configuración node.js. De forma predeterminada, los navegadores web buscan servidores en el puerto 80. Si desea que su servidor se ejecute en el puerto 3000 por alguna razón, tendrá que incluirse en la URL.

+0

¿No hay solución? Tiene que ir a configurar la aplicación para que se ejecute en el servidor en este puerto sin url. – Jenan

+0

Lo siento, no entendí bien. No creo que haya una forma de ejecutar en el puerto 3000 sin incluir esto en la URL. Sin embargo, podría estar equivocado. – feralcreature

10

Si desea ejecutarlo "sin un puerto" como usted describe, en realidad lo va a ejecutar en el puerto 80. No puede hacer esto sin permisos de root.

Así que en lugar de

node server.js 

Es necesario

sudo node server.js 

esto es suponiendo que tiene permisos de sudo en la máquina que está tratando de ejecutarlo en. De lo contrario, te encontrarás con problemas de EACCESS. Eso es lo que Sarnold está tratando de decirte.

+0

cómo ejecutar en el sistema Windows – Trojan

6

Así lo hice porque estoy usando apache y no puedo usar el puerto 80 porque lo reserva. Entonces, configuré un pase de proxy. Configuré mi carpeta/src para ser ignorada.

<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> 
+0

Hola, quería hacer exactamente lo mismo pero fallé.En errorlog dice '[vie 29 de noviembre 18:45:45 2013] [error] (111) Conexión rechazada: proxy: HTTP: intento para conectarse a my.IP.addr.0: 3000 (www.mydomainname.com) fallado'. ¿Qué módulo proxy está utilizando (http, ftp, ajp, etc.)? – Boyang

+0

Hola Charles: estoy usando la configuración de apache predeterminada para los proxies. Lo único que cambié para hacer que el proxy funcione fue este en mis fantasmas. Mi configuración de Apache tiene cargados todos los módulos proxy. Y apache está escuchando el puerto 80 en mi configuración. ¿No estás cargando alguno de los módulos? – Anna

Cuestiones relacionadas