2011年12月11日日曜日

jetty8でport80起動

さくらVPSにUbuntu 10.04 LTSをインストールしたので、Jettyをインストールしてみた。
Jettyはサイズも小さくWebサーバの機能も十分あるのでJettyのみで運用することにした。
Jettyはデフォルトだとポートは8080なので80に変更して起動することにする。

Jetty起動ユーザー:jetty
インストールディレクトリ:/usr/local/jetty

jettyユーザー作成

$ sudo useradd -m jetty

jetty8インストール

$ cd <workディレクトリ>
$ wget http://dist.codehaus.org/jetty/jetty-hightide-8.1.0/jetty-hightide-8.1.0.RC1.zip
$ unzip jetty-hightide-8.1.0.RC1.zip
$ sudo mv jetty-hightide-8.1.0.RC1 /usr/local/jetty
$ sudo chown -R jetty:jetty /usr/local/jetty

jettyの設定


/usr/local/jetty/etc/jetty.xmlを修正
<Call name="addConnector">
      <Arg>
          <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
            <Set name="host"><Property name="jetty.host" /></Set>
            <Set name="port"><Property name="jetty.port" default="8080"/></Set>
↓
<Call name="addConnector">
      <Arg>
          <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
            <Set name="host"><Property name="jetty.host" /></Set>
            <Set name="port"><Property name="jetty.port" default="80"/></Set>

/usr/local/jetty/start.iniを修正
--execのコメントを外す
-Djava.library.path=lib/setuidを追加する
# --exec
# -Dorg.apache.jasper.compiler.disablejsr199=true
↓
--exec
-Djava.library.path=lib/setuid
# -Dorg.apache.jasper.compiler.disablejsr199=true

OPTIONSにsetuidを追加
OPTIONS=Server,jsp,jmx,resources,websocket,ext,plus,annotations,jta,jdbc
↓
OPTIONS=Server,jsp,jmx,resources,websocket,ext,plus,annotations,jta,jdbc,setuid

etc/jetty-setuid.xmlを追加
#===========================================================
# Configuration files.
# For a full list of available configuration files do
#   java -jar start.jar --help
#-----------------------------------------------------------
etc/jetty-jmx.xml
etc/jetty.xml
↓
#===========================================================
# Configuration files.
# For a full list of available configuration files do
#   java -jar start.jar --help
#-----------------------------------------------------------
etc/jetty-setuid.xml
etc/jetty-jmx.xml
etc/jetty.xml

jettyの起動

$ cd /usr/local/jetty/
$ sudo java -jar start.jar
これで目的は達成。
ちなみにJetty起動時に停止用のパラメーターを指定しておけば停止用のコマンドで停止可能。

起動
$ sudo java -DSTOP.PORT=停止ポート -DSTOP.KEY=停止パスワード -jar start.jar
e.g.
$ sudo java -DSTOP.PORT=8079 -DSTOP.KEY=jetty -jar start.jar
停止
$ sudo java -DSTOP.PORT=停止ポート -DSTOP.KEY=停止パスワード -jar start.jar --stop
e.g.
$ sudo java -DSTOP.PORT=8079 -DSTOP.KEY=jetty -jar start.jar --stop

※注意
起動ユーザーがjettyじゃない場合はjetty-setuid.xmlの下記の箇所に修正が必要。
<Configure id="Server" class="org.mortbay.setuid.SetUIDServer">
  <Set name="startServerAsPrivileged">false</Set>
  <Set name="umask">2</Set>
  <Set name="username">jetty</Set>
  <Set name="groupname">jetty</Set>

0 件のコメント:

コメントを投稿