web-dev-qa-db-ja.com

非rootユーザーとしてポート80でJettyサーバーを実行中にエラーが発生しました

すべて、

ポート80で桟橋をセットアップしようとしていましたが、以下のように許可が拒否されたという例外を与えました。 setuidを使用するようにjettyをセットアップし、start.iniを次のように構成しました。

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

(start.iniの最初の構成ファイルとして)

etc/jetty-setuid.xml

非rootユーザーのユーザー名とグループ名を含むjetty-setuid.xmlファイル。

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
6
user75016

1024未満のポートは、スーパーユーザーのみがバインドできます。 jettyをスーパーユーザー(root)として実行するか、1024以上のポートを使用するように設定することができます(たとえば、8080、これは通常Javaベースのアプリサーバーに対して行われます)。どうしてもポート80からアクセスできるようにする場合は、Apacheサーバーを設定してJettyにリクエストを転送(または「リバースプロキシ」)することができます。これはここに明確に文書化されています。

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

11
roadmr

Tomcatの人々のためにApacheを残し、Nginxとそれらの単純な行に行きます

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;
    }
} 
2
CESCO