Ahora estoy intentando implementar mi aplicación Rails en Torquebox 2.0.3 en Ubuntu Server 11.04. Ahora está implementado correctamente, pude visitar la aplicación en el puerto 8080, pero no pude configurar el servidor para escuchar el puerto 80.
Intenté configurar el puerto para escuchar $TORQUEBOX_HOME/jboss/standalone/configuration/standalone.xml
:
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
....
<socket-binding name="http" port="80"/>
....
</socket-binding-group>
Después de eso, cuando inicio Torquebox llamando torquebox run
, aparece el siguiente error:
15:47:07,804 ERROR [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-1) Error initializing endpoint: java.net.BindException: Permission denied /127.0.0.1:80
at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:983) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:190) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.connector.Connector.init(Connector.java:983) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:267) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControlle
rImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.6.0_23]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Thread
PoolExecutor.java:603) [rt.jar:1.6.0_23]
at java.lang.Thread.run(Thread.java:679) [rt.jar:1.6.0_23]
Pero encuentro que ningún proceso mantiene el puerto 80:
$ sudo lsof -i :80
$ sudo netstat -tulpn | grep :80
$
¿Cómo podría resolver este problema y configurar el servidor jboss para escuchar el puerto 80?
Respuesta1
Los puertos con números más bajos (inferiores a 1024 tienden a estar restringidos a usuarios raíz). La forma mejor y más sencilla de solucionar esto es reenviar el puerto 80 al 8080 internamente en iptables o en el firewall de la red, en lugar de a nivel de aplicación.