一:背景
我们运行java web的时候,必须需要一个容器,我在开发当中使用的是jetty.下面谈一下jetty的安装部署。
二:jetty的安装部署
1.下载jetty到/data/目录下:
wget http://172.16.82.22:8081/artifactory/libs-release-local/com/meizu/rpm/jetty-7.6.9/1.0/jetty-7.6.9-1.0.rpm
2.查看并修改使jetty-7.6.9-1.0.rpm具有执行权限,如果没有执行权限需要添加执行权限
chmod +x jetty-7.6.9-1.0.rpm
3.安装jetty(默认安装在/data/目录下)
rpm -ivh --nodeps --force jetty-7.6.9-1.0.rpm
4.进入安装目录中给jetty.sh添加执行权限
进入目录:
cd /data/jetty-7.6.9/bin
添加权限:
cd /data/jetty-7.6.9/bin
5.修改服务日志存放目录(修改目录时,如果该目录不存在则,需要手动创建,否则启动的时候会报错)
cd /data/jetty-7.6.9/etcvi jetty-logging.xml
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<!-- =============================================================== -->
<!-- Configure stderr and stdout to a Jetty rollover log file -->
<!-- this configuration file should be used in combination with -->
<!-- other configuration files. e.g. -->
<!-- java -jar start.jar etc/jetty-logging.xml -->
<!-- =============================================================== -->
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<New id="ServerLog" class="java.io.PrintStream">
<Arg>
<New class="org.eclipse.jetty.util.RolloverFileOutputStream">
<Arg><Property name="jetty.logs" default="/data/log/jetty"/>/yyyy_mm_dd.jetty-error.log</Arg>
<Arg type="boolean">false</Arg>
<Arg type="int">90</Arg>
<Arg><Call class="java.util.TimeZone" name="getTimeZone"><Arg>GMT</Arg></Call></Arg>
<Get id="ServerLogName" name="datedFilename"/>
</New>
</Arg>
</New>
<Call class="org.eclipse.jetty.util.log.Log" name="debug"><Arg>Redirecting stderr/stdout to <Ref id="ServerLogName"/></Arg></Call>
<Call class="java.lang.System" name="setErr"><Arg><Ref id="ServerLog"/></Arg></Call>
<Call class="java.lang.System" name="setOut"><Arg><Ref id="ServerLog"/></Arg></Call>
</Configure>
6.安装的jetty默认的监听的端口是8080如果需要修改可以在 jetty.xml里修改端口号
cd /data/jetty-7.6.9/etcvi jetty.xml
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<!-- =============================================================== -->
<!-- Configure the Jetty Server -->
<!-- -->
<!-- Documentation of this file format can be found at: -->
<!-- http://wiki.eclipse.org/Jetty/Reference/jetty.xml_syntax -->
<!-- -->
<!-- Additional configuration files are available in $JETTY_HOME/etc -->
<!-- and can be mixed in. For example: -->
<!-- java -jar start.jar etc/jetty-ssl.xml -->
<!-- -->
<!-- See start.ini file for the default configuraton files -->
<!-- =============================================================== -->
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<!-- =========================================================== -->
<!-- Server Thread Pool -->
<!-- =========================================================== -->
<Set name="ThreadPool">
<!-- Default queued blocking threadpool -->
<New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
<Set name="minThreads">200</Set>
<Set name="maxThreads">1000</Set>
<Set name="detailedDump">false</Set>
</New>
</Set>
<!-- =========================================================== -->
<!-- Set connectors -->
<!-- =========================================================== -->
<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>
<Set name="maxIdleTime">3000</Set>
<Set name="Acceptors">2</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">9043</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">10000</Set>
</New>
</Arg>
</Call>
<!-- =========================================================== -->
<!-- Set handler Collection Structure -->
<!-- =========================================================== -->
<Set name="handler">
<New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
<Set name="handlers">
<Array type="org.eclipse.jetty.server.Handler">
<Item>
<New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
</Item>
<Item>
<New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
</Item>
</Array>
</Set>
</New>
</Set>
<!-- =========================================================== -->
<!-- extra options -->
<!-- =========================================================== -->
<Set name="stopAtShutdown">true</Set>
<Set name="sendServerVersion">true</Set>
<Set name="sendDateHeader">true</Set>
<Set name="gracefulShutdown">3000</Set>
<Set name="dumpAfterStart">false</Set>
<Set name="dumpBeforeStop">false</Set>
</Configure>
7.设置jetty的环境变量
vi /etc/profile
打开文件
在结尾处输入:
export JETTY_HOME=/data/jetty-7.6.9
8.使刚刚添加到环境变量中的环境变量生效
source /etc/profile
9.启动jetty
cd /data/jetty-7.6.9/bin/
./jetty.sh start
附:如何安装tar类型的jetty
1.首先将jetty-7.6.9.tar.gz解压到需要安装的目录/data/中
tar -zxvf jetty-7.6.9.tar.gz
2.后面的步骤和rpm安装步骤4-9相同
注:(通过rpm安装的jetty,部署项目时:需要部署在webapps目录下的ROOT目录里才能访问到,通过tar解压的项目直接部署在webapps下就可以直接访问)
附:如何修改 jetty运行时JVM的参数
[root@ggweb02 webapps]# cd /data/jetty-7.6.9/
[root@ggweb02 jetty-7.6.9]# vi start.ini
在我们项目中因为使用了加密算法所以需要修改start.ini文件里的加密参数
-Dcom.meizu.properties.key=JIYHmdjysdk98KJ
-Dcom.meizu.properties.encrypt=true
加入下面的配置可以开启在线调试功能,当然可能需要重启jetty.
-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n
注:当部署项目的时候因为程序会把配置文件自动下载在到机器上,默认的是文件夹是conf下,所以需要在/data/目录下创建conf目录