Tout,
J'essayais d'installer la jetée sur le port 80, mais son exception donnait une autorisation refusée, comme indiqué ci-dessous. J'ai configuré jetty pour travailler avec setuid et configurer start.ini comme suit:
OPTIONS=Server,jsp,jmx,resources,websocket,ext,plus,annotations,jta,jdbc,setuid
(ci-dessous en tant que premier fichier de configuration dans start.ini)
etc/jetty-setuid.xml
et le fichier jetty-setuid.xml avec le nom d'utilisateur et le nom de groupe de l'utilisateur non root.
2012-07-03 15:29:02.411:INFO:oejdp.ScanningAppProvider:Deployment monitor /opt/jetty-hightide-8.1.3.v20120416/contexts at interval 1
2012-07-03 15:29:02.454:WARN:oejuc.AbstractLifeCycle:FAILED [email protected]:80: Java.net.SocketException: Permission denied
Java.net.SocketException: Permission denied
at Sun.nio.ch.Net.bind(Native Method)
at Sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.Java:126)
at Sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.Java:59)
at org.Eclipse.jetty.server.nio.SelectChannelConnector.open(SelectChannelConnector.Java:182)
at org.Eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.Java:311)
at org.Eclipse.jetty.server.nio.SelectChannelConnector.doStart(SelectChannelConnector.Java:260)
at org.Eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:59)
at org.Eclipse.jetty.server.Server.doStart(Server.Java:273)
at org.Eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:59)
at org.Eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.Java:1215)
at Java.security.AccessController.doPrivileged(Native Method)
at org.Eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.Java:1138)
2012-07-03 15:29:02.455:WARN:oejuc.AbstractLifeCycle:FAILED org.Eclipse.jetty.server.Server@66da9ea4: Java.net.SocketException: Permission denied
Java.net.SocketException: Permission denied
Les ports inférieurs à 1024 ne peuvent être liés que par le superutilisateur. Vous pouvez exécuter la jetée en tant que superutilisateur (racine) ou la configurer pour utiliser un port supérieur à 1024 (par exemple, 8080, cela est généralement fait pour les serveurs d'applications basés sur Java). Si vous souhaitez que cela soit accessible à tout prix par le port 80, vous pouvez configurer un serveur Apache pour qu'il transfère les demandes (ou "reverse-proxy") à Jetty. Ceci est clairement documenté ici:
http://docs.codehaus.org/display/JETTY/Configuring+mod_proxy
Laissez Apache aux utilisateurs de Tomcat, optez pour Nginx et ces lignes simples.
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/example.log;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_redirect off;
proxy_set_header Host $Host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}