Ich versuche jetzt, meine Rails-Anwendung auf Torquebox 2.0.3 auf Ubuntu Server 11.04 bereitzustellen. Jetzt ist sie korrekt bereitgestellt, ich konnte die Anwendung über Port 8080 aufrufen. Aber ich konnte den Server nicht so konfigurieren, dass er auf Port 80 lauscht.
Ich habe versucht, den Port zum Abhören festzulegen $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>
Wenn ich danach Torquebox durch Aufrufen starte torquebox run
, erhalte ich die folgende Fehlermeldung:
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]
Aber ich finde, dass kein Prozess Port 80 hält:
$ sudo lsof -i :80
$ sudo netstat -tulpn | grep :80
$
Wie kann ich dieses Problem lösen und den JBoss-Server so konfigurieren, dass er auf Port 80 lauscht?
Antwort1
Ports mit niedrigeren Nummern – niedriger als 1024 – sind in der Regel Root-Benutzern vorbehalten. Die beste/einfachste Möglichkeit, dies zu umgehen, besteht darin, Port 80 intern an iptables oder an der Firewall des Netzwerks an 8080 weiterzuleiten, anstatt auf Anwendungsebene.