Error while running Jetty Server on port 80 as non root user

32,549

Solution 1

Ports below 1024 can only be bound to by the superuser. You can run jetty as superuser (root), or configure it to use a port above 1024 (say, 8080, this is usually done for Java-based app servers). If you want this to be accessible through port 80 at all costs, you can set an Apache server to forward (or "reverse-proxy") requests to Jetty. This is clearly documented here:

http://docs.codehaus.org/display/JETTY/Configuring+mod_proxy

Solution 2

Leave Apache for Tomcat people, go for Nginx and those simple lines

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;
    }
} 
Share:
32,549

Related videos on Youtube

user75016
Author by

user75016

Updated on September 18, 2022

Comments

  • user75016
    user75016 over 1 year

    All,

    I was trying to setup jetty on port 80 but its giving exception saying permission denied as below. I have setup jetty to work with setuid and configured start.ini as follows:

    OPTIONS=Server,jsp,jmx,resources,websocket,ext,plus,annotations,jta,jdbc,setuid
    

    (below as first configuration file in start.ini)

    etc/jetty-setuid.xml
    

    and jetty-setuid.xml file with username and group name of non root user.

    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